diff --git a/locales/ar-SA/messages.po b/locales/ar-SA/messages.po new file mode 100644 index 000000000..54ca43d90 --- /dev/null +++ b/locales/ar-SA/messages.po @@ -0,0 +1,260 @@ +msgid "" +msgstr "" +"Project-Id-Version: tao-open-source\n" +"PO-Revision-Date: 2023-11-25 18:27\n" +"Last-Translator: TAO Translation Team \n" +"MIME-Version: 1.0\n" +"Language: ar\n" +"sourceLanguage: en-US\n" +"targetLanguage: en-US\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Poedit-Basepath: ../../\n" +"X-Poedit-KeywordsList: __\n" +"X-Poedit-SearchPath-0: .\n" +"Plural-Forms: nplurals=6; plural=(n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5);\n" +"X-Crowdin-Project: tao-open-source\n" +"X-Crowdin-Project-ID: 590867\n" +"X-Crowdin-Language: ar\n" +"X-Crowdin-File: /[oat-sa.extension-tao-item] develop/locales/en-US/messages.po\n" +"X-Crowdin-File-ID: 805\n" +"Language-Team: Arabic\n" + +msgid "Note: For empty classes, the RDF format
is the only available format." +msgstr " ملاحظة : بالنسبة للأقسام الفارغة ، فإن تنسيق RDF
هو التنسيق الوحيد المتاح." + +msgid "Actual size" +msgstr "الحجم الحالي" + +msgid "and" +msgstr "و" + +msgid "and all of its content?" +msgstr "وكل محتوياته?" + +msgid "Are you sure you want to delete the class" +msgstr "هل أنت متأكد أنك تريد حذف القسم" + +msgid "Are you sure you want to delete the item" +msgstr "هل أنت متأكد أنك تريد حذف القسم" + +msgid "Are you sure you want to delete this class and all of its content?" +msgstr "هل أنت متأكد من أنك تريد حذف هذا القسم وكل محتواه؟" + +msgid "Are you sure you want to delete this item?" +msgstr "هل أنت متأكد أنك تريد حذف هذا البند?" + +#, tao-public +msgid "Authoring" +msgstr "التحرير" + +msgid "Class schema saved" +msgstr "تم حفظ مخطط القسم" + +msgid "Close" +msgstr "إغلاق" + +msgid "Close console" +msgstr "إغلاق وحدة التحكم" + +msgid "contains content that is currently in use." +msgstr "يحتوي على محتوى قيد الاستخدام حاليًا." + +#, tao-public +msgid "Copy To" +msgstr "نسخ الى" + +#, tao-public +msgid "Create and design items and exercises." +msgstr "إنشاء وتصميم العناصر والتمارين." + +#, tao-public +msgid "Delete" +msgstr "حذف" + +msgid "Deleting this class will break the" +msgstr "سيؤدي حذف هذا القسم إلى تعطيل ملف" + +msgid "Deleting this item will break the" +msgstr "سيؤدي حذف هذا البند إلى تعطيل ملف" + +msgid "Desktop preview" +msgstr "معاينة سطح المكتب" + +msgid "Don’t show this again!" +msgstr "لا تظهر هذا مرة أخرى!" + +#, tao-public +msgid "Duplicate" +msgstr "انسخ" + +msgid "Edit Item" +msgstr "نشر بند" + +msgid "Edit item" +msgstr "نشر بند" + +#, tao-public +msgid "Export" +msgstr "تصدير" + +msgid "Expose the property value to create automated categories." +msgstr "كشف قيمة الخاصية لإنشاء فئات آلية." + +msgid "Failed retrieving %s" +msgstr "فشل استرداد %s" + +msgid "Forbidden action" +msgstr "إجراء محظور" + +#, tao-public +msgid "Import" +msgstr "استورد" + +msgid "is currently in use." +msgstr "قيد الاستخدام حاليًا." + +msgid "Item Model" +msgstr "نموذج البند" + +msgid "Item not found" +msgstr "البند غير موجود" + +msgid "Item saved" +msgstr "تم حفظ البند" + +#, tao-public +msgid "Items" +msgstr "بنود" + +#, tao-public +msgid "Items library" +msgstr "خزانة البنود" + +msgid "Landscape" +msgstr "المناظر الطبيعيه" + +msgid "Last updated on %2s" +msgstr "آخر تحديث في %2s" + +msgid "Manage item class schema" +msgstr "إدارة مخطط فئة البند" + +#, tao-public +msgid "Manage items" +msgstr "إدارة البنود" + +#, tao-public +msgid "Manage Schema" +msgstr "إدارة الخطاطة" + +msgid "Mobile preview" +msgstr "معاينة المحمول" + +#, tao-public +msgid "Move" +msgstr "حرك" + +#, tao-public +msgid "Move To" +msgstr "حرك نحو" + +#, tao-public +msgid "New class" +msgstr "صنف جديد" + +msgid "No item authoring tool available for the selected type of item: %s" +msgstr "لا تتوفر أداة تأليف بند على نوع البند المحدد: %s" + +msgid "No item type selected for the current item." +msgstr "لم يتم تحديد نوع البند للبند الحالي." + +msgid "Not yet available" +msgstr "لم تتوفر بعد" + +msgid "other" +msgstr "آخر" + +msgid "Please delete the subclasses before." +msgstr "يرجى حذف الفئات الفرعية قبلًا." + +msgid "Please select first the item type!" +msgstr "الرجاء تحديد نوع البند أولاً!" + +msgid "Portrait" +msgstr "صورة" + +#, tao-public +msgid "Preview" +msgstr "معاينة" + +#, tao-public +msgid "Properties" +msgstr "خصائص" + +msgid "Published \"%1$s\" in language \"%2$s" +msgstr "تم نشر \"%1$s\" باللغة \"%2$s\"" + +msgid "Remove this message" +msgstr "قم بإزالة هذه الرسالة" + +msgid "Resource deleted" +msgstr "تم حذف المورد" + +msgid "Retrieving external resources" +msgstr "استرجاع الموارد الخارجية" + +msgid "s" +msgstr "s" + +msgid "Submit" +msgstr "إرسال" + +msgid "test" +msgstr "رائز" + +msgid "The class" +msgstr "القسم" + +msgid "The file you tried to upload is not valid" +msgstr "الملف الذي حاولت تحميله غير مضبوط" + +msgid "The item" +msgstr "البند" + +msgid "The Items module enables the creation and design of items and exercises." +msgstr "تتيح مجزوءة البنود إنشاء وتصميم البنود والتمارين." + +msgid "The property is exposed to category addition. Remove exposition ?" +msgstr "الخاصية معرضة للمساءلة الفئوية & # 13 هل تريد إزالة التعرض?" + +msgid "This preview may be scaled to fit your screen. The final rendering may differ." +msgstr "قد يتم تحجيم هذه المعاينة لتناسب شاشتك. قد يختلف العرض النهائي." + +msgid "Unable to copy resources for language %s" +msgstr "تعذر نسخ الموارد للغة %s" + +msgid "Unable to create deployement directory" +msgstr "تعذر إنشاء دليل النشر" + +msgid "Unable to delete the selected resource" +msgstr "غير قادر على حذف المورد المختار" + +msgid "Unable to render the item from %s : %s %s" +msgstr "تعذر تقديم البند من %s : %s %s" + +msgid "using it:" +msgstr "استخدامه:" + +msgid "Warning" +msgstr "تحذير" + +msgid "you are trying to delete is too large and contains too many subclasses." +msgstr "أنت تحاول حذفه وهو كبير جدا ويحتوي على الكثير من الفئات الفرعية." + +msgid "You checked out this item %2s ago" +msgstr "لقد سحبت هذا البند قبل %2s" + +msgid "Your path contains error" +msgstr "مسارك يحتوي على خطأ" + diff --git a/locales/de-DE/messages.po b/locales/de-DE/messages.po index 8763251d4..703a9ee22 100644 --- a/locales/de-DE/messages.po +++ b/locales/de-DE/messages.po @@ -1,48 +1,55 @@ msgid "" msgstr "" -"Project-Id-Version: TAO 3.4.0-sprint143\n" -"PO-Revision-Date: 2020-12-18T09:14:34\n" +"Project-Id-Version: tao-open-source\n" +"PO-Revision-Date: 2023-11-26 19:06\n" "Last-Translator: TAO Translation Team \n" "MIME-Version: 1.0\n" -"Language: de-DE\n" +"Language: de\n" "sourceLanguage: en-US\n" -"targetLanguage: de-DE\n" -"Content-Type: text/plain; charset=utf-8\n" +"targetLanguage: en-US\n" +"Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Poedit-Basepath: ../../\n" "X-Poedit-KeywordsList: __\n" "X-Poedit-SearchPath-0: .\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Crowdin-Project: tao-open-source\n" +"X-Crowdin-Project-ID: 590867\n" +"X-Crowdin-Language: de\n" +"X-Crowdin-File: /[oat-sa.extension-tao-item] develop/locales/en-US/messages.po\n" +"X-Crowdin-File-ID: 805\n" +"Language-Team: German\n" msgid "Note: For empty classes, the RDF format
is the only available format." -msgstr "" +msgstr "Hinweis: Für leere Klassen ist das RDF-Format die einzige verfügbare Formatierung." msgid "Actual size" msgstr "Tatsächliche Größe" msgid "and" -msgstr "" +msgstr "und" msgid "and all of its content?" -msgstr "" +msgstr "und seinen gesamten Inhalt?" msgid "Are you sure you want to delete the class" -msgstr "" +msgstr "Sind Sie sicher, dass Sie die Klasse löschen möchten?" msgid "Are you sure you want to delete the item" -msgstr "" +msgstr "Sind Sie sicher, dass Sie das Element löschen möchten?" msgid "Are you sure you want to delete this class and all of its content?" -msgstr "" +msgstr "Sind Sie sicher, dass Sie diese Klasse und all ihren Inhalt löschen möchten?" msgid "Are you sure you want to delete this item?" -msgstr "" +msgstr "Sind Sie sicher, dass Sie dieses Element löschen möchten?" #, tao-public msgid "Authoring" msgstr "Verfassen" msgid "Class schema saved" -msgstr "" +msgstr "Klassenschema gespeichert" msgid "Close" msgstr "Schließen" @@ -51,11 +58,11 @@ msgid "Close console" msgstr "Konsole schließen" msgid "contains content that is currently in use." -msgstr "" +msgstr "enthält Inhalte, die derzeit in Verwendung sind." #, tao-public msgid "Copy To" -msgstr "" +msgstr "Kopieren nach" #, tao-public msgid "Create and design items and exercises." @@ -66,10 +73,10 @@ msgid "Delete" msgstr "Löschen" msgid "Deleting this class will break the" -msgstr "" +msgstr "Das Löschen dieser Klasse unterbricht " msgid "Deleting this item will break the" -msgstr "" +msgstr "Das Löschen dieses Elements unterbricht " msgid "Desktop preview" msgstr "Desktop-Vorschau" @@ -89,29 +96,29 @@ msgstr "Element bearbeiten" #, tao-public msgid "Export" -msgstr "Exportieren" +msgstr "Export" msgid "Expose the property value to create automated categories." -msgstr "" +msgstr "Den Eigenschaftswert freigeben, um automatisierte Kategorien zu erstellen." msgid "Failed retrieving %s" msgstr "Fehler bei Abruf von %s" msgid "Forbidden action" -msgstr "" +msgstr "Verbotene Aktion" #, tao-public msgid "Import" msgstr "Importieren" msgid "is currently in use." -msgstr "" +msgstr "wird derzeit verwendet." msgid "Item Model" msgstr "Element-Modell" msgid "Item not found" -msgstr "" +msgstr "Element nicht gefunden" msgid "Item saved" msgstr "Element gespeichert" @@ -128,10 +135,10 @@ msgid "Landscape" msgstr "Querformat" msgid "Last updated on %2s" -msgstr "" +msgstr "Letztes Update vom %2s" msgid "Manage item class schema" -msgstr "" +msgstr "Verwalten des Klassenschemas für Elemente" #, tao-public msgid "Manage items" @@ -139,7 +146,7 @@ msgstr "Elemente verwalten" #, tao-public msgid "Manage Schema" -msgstr "" +msgstr "Schema verwalten" msgid "Mobile preview" msgstr "Mobile Vorschau" @@ -150,7 +157,7 @@ msgstr "Verschieben" #, tao-public msgid "Move To" -msgstr "" +msgstr "Bewegen nach" #, tao-public msgid "New class" @@ -166,10 +173,10 @@ msgid "Not yet available" msgstr "Noch nicht verfügbar" msgid "other" -msgstr "" +msgstr "andere" msgid "Please delete the subclasses before." -msgstr "" +msgstr "Bitte löschen Sie vorher die Unterklassen." msgid "Please select first the item type!" msgstr "Bitte zuerst den Element-Typ auswählen!" @@ -192,34 +199,34 @@ msgid "Remove this message" msgstr "Diese Nachricht entfernen" msgid "Resource deleted" -msgstr "" +msgstr "Ressource gelöscht" msgid "Retrieving external resources" msgstr "Externe Quellen abrufen" msgid "s" -msgstr "" +msgstr "s" msgid "Submit" msgstr "Absenden" msgid "test" -msgstr "" +msgstr "Test" msgid "The class" -msgstr "" +msgstr "Die Klasse" msgid "The file you tried to upload is not valid" msgstr "Die hochgeladene Datei ist ungültig" msgid "The item" -msgstr "" +msgstr "Das Element" msgid "The Items module enables the creation and design of items and exercises." msgstr "Das Element-Modul ermöglicht das Erstellen und Entwickeln von Elementen und Übungen." msgid "The property is exposed to category addition. Remove exposition ?" -msgstr "" +msgstr "Die Eigenschaft ist zur Kategorieerweiterung freigegeben. Exposition entfernen?" msgid "This preview may be scaled to fit your screen. The final rendering may differ." msgstr "Diese Vorschau ist möglicherweise an ihren Bildschirm angepasst. Die endgültige Version kann davon abweichen." @@ -231,19 +238,19 @@ msgid "Unable to create deployement directory" msgstr "Der Deployment-Ordner konnte nicht erstellt werden" msgid "Unable to delete the selected resource" -msgstr "" +msgstr "Die ausgewählte Ressource kann nicht gelöscht werden" msgid "Unable to render the item from %s : %s %s" -msgstr "" +msgstr "Das Element konnte nicht aus %s gerendert werden: %s %s" msgid "using it:" -msgstr "" +msgstr "verwenden:" msgid "Warning" -msgstr "" +msgstr "Warnung" msgid "you are trying to delete is too large and contains too many subclasses." -msgstr "" +msgstr "Das zu löschende Element ist zu groß und enthält zu viele Unterklassen." msgid "You checked out this item %2s ago" msgstr "Sie haben dieses Element vor %2s überprüft" diff --git a/locales/en-GB/messages.po b/locales/en-GB/messages.po new file mode 100644 index 000000000..ec2ad9c63 --- /dev/null +++ b/locales/en-GB/messages.po @@ -0,0 +1,260 @@ +msgid "" +msgstr "" +"Project-Id-Version: tao-open-source\n" +"PO-Revision-Date: 2023-06-14 08:11\n" +"Last-Translator: TAO Translation Team \n" +"MIME-Version: 1.0\n" +"Language: en_GB\n" +"sourceLanguage: en-US\n" +"targetLanguage: en-US\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Poedit-Basepath: ../../\n" +"X-Poedit-KeywordsList: __\n" +"X-Poedit-SearchPath-0: .\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Crowdin-Project: tao-open-source\n" +"X-Crowdin-Project-ID: 590867\n" +"X-Crowdin-Language: en-GB\n" +"X-Crowdin-File: /[oat-sa.extension-tao-item] develop/locales/en-US/messages.po\n" +"X-Crowdin-File-ID: 805\n" +"Language-Team: English, United Kingdom\n" + +msgid "Note: For empty classes, the RDF format
is the only available format." +msgstr "" + +msgid "Actual size" +msgstr "" + +msgid "and" +msgstr "" + +msgid "and all of its content?" +msgstr "" + +msgid "Are you sure you want to delete the class" +msgstr "" + +msgid "Are you sure you want to delete the item" +msgstr "" + +msgid "Are you sure you want to delete this class and all of its content?" +msgstr "" + +msgid "Are you sure you want to delete this item?" +msgstr "" + +#, tao-public +msgid "Authoring" +msgstr "" + +msgid "Class schema saved" +msgstr "" + +msgid "Close" +msgstr "" + +msgid "Close console" +msgstr "" + +msgid "contains content that is currently in use." +msgstr "" + +#, tao-public +msgid "Copy To" +msgstr "" + +#, tao-public +msgid "Create and design items and exercises." +msgstr "" + +#, tao-public +msgid "Delete" +msgstr "" + +msgid "Deleting this class will break the" +msgstr "" + +msgid "Deleting this item will break the" +msgstr "" + +msgid "Desktop preview" +msgstr "" + +msgid "Don’t show this again!" +msgstr "" + +#, tao-public +msgid "Duplicate" +msgstr "" + +msgid "Edit Item" +msgstr "" + +msgid "Edit item" +msgstr "" + +#, tao-public +msgid "Export" +msgstr "" + +msgid "Expose the property value to create automated categories." +msgstr "" + +msgid "Failed retrieving %s" +msgstr "" + +msgid "Forbidden action" +msgstr "" + +#, tao-public +msgid "Import" +msgstr "" + +msgid "is currently in use." +msgstr "" + +msgid "Item Model" +msgstr "" + +msgid "Item not found" +msgstr "" + +msgid "Item saved" +msgstr "" + +#, tao-public +msgid "Items" +msgstr "" + +#, tao-public +msgid "Items library" +msgstr "" + +msgid "Landscape" +msgstr "" + +msgid "Last updated on %2s" +msgstr "" + +msgid "Manage item class schema" +msgstr "" + +#, tao-public +msgid "Manage items" +msgstr "" + +#, tao-public +msgid "Manage Schema" +msgstr "" + +msgid "Mobile preview" +msgstr "" + +#, tao-public +msgid "Move" +msgstr "" + +#, tao-public +msgid "Move To" +msgstr "" + +#, tao-public +msgid "New class" +msgstr "" + +msgid "No item authoring tool available for the selected type of item: %s" +msgstr "" + +msgid "No item type selected for the current item." +msgstr "" + +msgid "Not yet available" +msgstr "" + +msgid "other" +msgstr "" + +msgid "Please delete the subclasses before." +msgstr "" + +msgid "Please select first the item type!" +msgstr "" + +msgid "Portrait" +msgstr "" + +#, tao-public +msgid "Preview" +msgstr "" + +#, tao-public +msgid "Properties" +msgstr "" + +msgid "Published \"%1$s\" in language \"%2$s" +msgstr "" + +msgid "Remove this message" +msgstr "" + +msgid "Resource deleted" +msgstr "" + +msgid "Retrieving external resources" +msgstr "" + +msgid "s" +msgstr "" + +msgid "Submit" +msgstr "" + +msgid "test" +msgstr "" + +msgid "The class" +msgstr "" + +msgid "The file you tried to upload is not valid" +msgstr "" + +msgid "The item" +msgstr "" + +msgid "The Items module enables the creation and design of items and exercises." +msgstr "" + +msgid "The property is exposed to category addition. Remove exposition ?" +msgstr "" + +msgid "This preview may be scaled to fit your screen. The final rendering may differ." +msgstr "" + +msgid "Unable to copy resources for language %s" +msgstr "" + +msgid "Unable to create deployement directory" +msgstr "" + +msgid "Unable to delete the selected resource" +msgstr "" + +msgid "Unable to render the item from %s : %s %s" +msgstr "" + +msgid "using it:" +msgstr "" + +msgid "Warning" +msgstr "" + +msgid "you are trying to delete is too large and contains too many subclasses." +msgstr "" + +msgid "You checked out this item %2s ago" +msgstr "" + +msgid "Your path contains error" +msgstr "" + diff --git a/locales/es-ES/messages.po b/locales/es-ES/messages.po index e6eec4dbd..f52dde5ef 100644 --- a/locales/es-ES/messages.po +++ b/locales/es-ES/messages.po @@ -1,17 +1,24 @@ msgid "" msgstr "" -"Project-Id-Version: TAO 3.4.0-sprint143\n" -"PO-Revision-Date: 2020-12-18T09:14:34\n" +"Project-Id-Version: tao-open-source\n" +"PO-Revision-Date: 2023-12-05 14:39\n" "Last-Translator: TAO Translation Team \n" "MIME-Version: 1.0\n" -"Language: es-ES\n" +"Language: es\n" "sourceLanguage: en-US\n" -"targetLanguage: es-ES\n" -"Content-Type: text/plain; charset=utf-8\n" +"targetLanguage: en-US\n" +"Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Poedit-Basepath: ../../\n" "X-Poedit-KeywordsList: __\n" "X-Poedit-SearchPath-0: .\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Crowdin-Project: tao-open-source\n" +"X-Crowdin-Project-ID: 590867\n" +"X-Crowdin-Language: es-ES\n" +"X-Crowdin-File: /[oat-sa.extension-tao-item] develop/locales/en-US/messages.po\n" +"X-Crowdin-File-ID: 805\n" +"Language-Team: Spanish\n" msgid "Note: For empty classes, the RDF format
is the only available format." msgstr "" @@ -39,7 +46,7 @@ msgstr "" #, tao-public msgid "Authoring" -msgstr "Autoria" +msgstr "Autoría" msgid "Class schema saved" msgstr "" @@ -63,7 +70,7 @@ msgstr "" #, tao-public msgid "Delete" -msgstr "Eliminar" +msgstr "" msgid "Deleting this class will break the" msgstr "" @@ -89,7 +96,7 @@ msgstr "Editar elemento" #, tao-public msgid "Export" -msgstr "Exportar" +msgstr "" msgid "Expose the property value to create automated categories." msgstr "" @@ -118,7 +125,7 @@ msgstr "Elemento fguardado" #, tao-public msgid "Items" -msgstr "Elementos" +msgstr "" #, tao-public msgid "Items library" @@ -183,7 +190,7 @@ msgstr "Vista previa" #, tao-public msgid "Properties" -msgstr "Propiedades" +msgstr "" msgid "Published \"%1$s\" in language \"%2$s" msgstr "Publicado \"%1$s\" en idioma \"%2$s" diff --git a/locales/fr-FR/messages.po b/locales/fr-FR/messages.po index 992fbd486..bcd81d14b 100644 --- a/locales/fr-FR/messages.po +++ b/locales/fr-FR/messages.po @@ -1,17 +1,24 @@ msgid "" msgstr "" -"Project-Id-Version: TAO 3.4.0-sprint143\n" -"PO-Revision-Date: 2020-12-18T09:14:34\n" +"Project-Id-Version: tao-open-source\n" +"PO-Revision-Date: 2023-12-05 14:39\n" "Last-Translator: TAO Translation Team \n" "MIME-Version: 1.0\n" -"Language: fr-FR\n" +"Language: fr\n" "sourceLanguage: en-US\n" -"targetLanguage: fr-FR\n" -"Content-Type: text/plain; charset=utf-8\n" +"targetLanguage: en-US\n" +"Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Poedit-Basepath: ../../\n" "X-Poedit-KeywordsList: __\n" "X-Poedit-SearchPath-0: .\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" +"X-Crowdin-Project: tao-open-source\n" +"X-Crowdin-Project-ID: 590867\n" +"X-Crowdin-Language: fr\n" +"X-Crowdin-File: /[oat-sa.extension-tao-item] develop/locales/en-US/messages.po\n" +"X-Crowdin-File-ID: 805\n" +"Language-Team: French\n" msgid "Note: For empty classes, the RDF format
is the only available format." msgstr "" @@ -39,7 +46,7 @@ msgstr "" #, tao-public msgid "Authoring" -msgstr "Éditeur" +msgstr "Édition" msgid "Class schema saved" msgstr "Schéma de classe enregistré" @@ -89,7 +96,7 @@ msgstr "Éditer l'élément" #, tao-public msgid "Export" -msgstr "Exporter" +msgstr "" msgid "Expose the property value to create automated categories." msgstr "Exposer la valeur de la propriété pour créer des catégories automatisées." @@ -102,7 +109,7 @@ msgstr "" #, tao-public msgid "Import" -msgstr "Importer" +msgstr "" msgid "is currently in use." msgstr "" @@ -154,7 +161,7 @@ msgstr "Déplacer vers" #, tao-public msgid "New class" -msgstr "Créer classe" +msgstr "Nouvelle classe" msgid "No item authoring tool available for the selected type of item: %s" msgstr "Pas d'outil de création d'item disponible pour le type d'item sélectionné : %s" @@ -175,15 +182,15 @@ msgid "Please select first the item type!" msgstr "Veuillez sélectionner d'abord un type d'item !" msgid "Portrait" -msgstr "Portrait" +msgstr "" #, tao-public msgid "Preview" -msgstr "Aperçu " +msgstr "Aperçu" #, tao-public msgid "Properties" -msgstr "Propriétés" +msgstr "" msgid "Published \"%1$s\" in language \"%2$s" msgstr "Publié \"%1$s\" dans la langue \"%2$s" diff --git a/locales/he-IL/messages.po b/locales/he-IL/messages.po new file mode 100644 index 000000000..94be0ec85 --- /dev/null +++ b/locales/he-IL/messages.po @@ -0,0 +1,260 @@ +msgid "" +msgstr "" +"Project-Id-Version: tao-open-source\n" +"PO-Revision-Date: 2023-08-29 08:08\n" +"Last-Translator: TAO Translation Team \n" +"MIME-Version: 1.0\n" +"Language: he\n" +"sourceLanguage: en-US\n" +"targetLanguage: en-US\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Poedit-Basepath: ../../\n" +"X-Poedit-KeywordsList: __\n" +"X-Poedit-SearchPath-0: .\n" +"Plural-Forms: nplurals=4; plural=n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3;\n" +"X-Crowdin-Project: tao-open-source\n" +"X-Crowdin-Project-ID: 590867\n" +"X-Crowdin-Language: he\n" +"X-Crowdin-File: /[oat-sa.extension-tao-item] develop/locales/en-US/messages.po\n" +"X-Crowdin-File-ID: 805\n" +"Language-Team: Hebrew\n" + +msgid "Note: For empty classes, the RDF format
is the only available format." +msgstr "" + +msgid "Actual size" +msgstr "" + +msgid "and" +msgstr "" + +msgid "and all of its content?" +msgstr "" + +msgid "Are you sure you want to delete the class" +msgstr "" + +msgid "Are you sure you want to delete the item" +msgstr "" + +msgid "Are you sure you want to delete this class and all of its content?" +msgstr "" + +msgid "Are you sure you want to delete this item?" +msgstr "" + +#, tao-public +msgid "Authoring" +msgstr "" + +msgid "Class schema saved" +msgstr "" + +msgid "Close" +msgstr "" + +msgid "Close console" +msgstr "" + +msgid "contains content that is currently in use." +msgstr "" + +#, tao-public +msgid "Copy To" +msgstr "" + +#, tao-public +msgid "Create and design items and exercises." +msgstr "" + +#, tao-public +msgid "Delete" +msgstr "" + +msgid "Deleting this class will break the" +msgstr "" + +msgid "Deleting this item will break the" +msgstr "" + +msgid "Desktop preview" +msgstr "" + +msgid "Don’t show this again!" +msgstr "" + +#, tao-public +msgid "Duplicate" +msgstr "" + +msgid "Edit Item" +msgstr "" + +msgid "Edit item" +msgstr "" + +#, tao-public +msgid "Export" +msgstr "" + +msgid "Expose the property value to create automated categories." +msgstr "" + +msgid "Failed retrieving %s" +msgstr "" + +msgid "Forbidden action" +msgstr "" + +#, tao-public +msgid "Import" +msgstr "" + +msgid "is currently in use." +msgstr "" + +msgid "Item Model" +msgstr "" + +msgid "Item not found" +msgstr "" + +msgid "Item saved" +msgstr "" + +#, tao-public +msgid "Items" +msgstr "" + +#, tao-public +msgid "Items library" +msgstr "" + +msgid "Landscape" +msgstr "" + +msgid "Last updated on %2s" +msgstr "" + +msgid "Manage item class schema" +msgstr "" + +#, tao-public +msgid "Manage items" +msgstr "" + +#, tao-public +msgid "Manage Schema" +msgstr "" + +msgid "Mobile preview" +msgstr "" + +#, tao-public +msgid "Move" +msgstr "" + +#, tao-public +msgid "Move To" +msgstr "" + +#, tao-public +msgid "New class" +msgstr "" + +msgid "No item authoring tool available for the selected type of item: %s" +msgstr "" + +msgid "No item type selected for the current item." +msgstr "" + +msgid "Not yet available" +msgstr "" + +msgid "other" +msgstr "" + +msgid "Please delete the subclasses before." +msgstr "" + +msgid "Please select first the item type!" +msgstr "" + +msgid "Portrait" +msgstr "" + +#, tao-public +msgid "Preview" +msgstr "" + +#, tao-public +msgid "Properties" +msgstr "" + +msgid "Published \"%1$s\" in language \"%2$s" +msgstr "" + +msgid "Remove this message" +msgstr "" + +msgid "Resource deleted" +msgstr "" + +msgid "Retrieving external resources" +msgstr "" + +msgid "s" +msgstr "" + +msgid "Submit" +msgstr "" + +msgid "test" +msgstr "" + +msgid "The class" +msgstr "" + +msgid "The file you tried to upload is not valid" +msgstr "" + +msgid "The item" +msgstr "" + +msgid "The Items module enables the creation and design of items and exercises." +msgstr "" + +msgid "The property is exposed to category addition. Remove exposition ?" +msgstr "" + +msgid "This preview may be scaled to fit your screen. The final rendering may differ." +msgstr "" + +msgid "Unable to copy resources for language %s" +msgstr "" + +msgid "Unable to create deployement directory" +msgstr "" + +msgid "Unable to delete the selected resource" +msgstr "" + +msgid "Unable to render the item from %s : %s %s" +msgstr "" + +msgid "using it:" +msgstr "" + +msgid "Warning" +msgstr "" + +msgid "you are trying to delete is too large and contains too many subclasses." +msgstr "" + +msgid "You checked out this item %2s ago" +msgstr "" + +msgid "Your path contains error" +msgstr "" + diff --git a/locales/it-IT/messages.po b/locales/it-IT/messages.po index 83c1400e5..abd1b8651 100644 --- a/locales/it-IT/messages.po +++ b/locales/it-IT/messages.po @@ -1,17 +1,24 @@ msgid "" msgstr "" -"Project-Id-Version: TAO 3.4.0-sprint143\n" -"PO-Revision-Date: 2020-12-18T09:14:34\n" +"Project-Id-Version: tao-open-source\n" +"PO-Revision-Date: 2023-06-14 08:31\n" "Last-Translator: TAO Translation Team \n" "MIME-Version: 1.0\n" -"Language: it-IT\n" +"Language: it\n" "sourceLanguage: en-US\n" -"targetLanguage: it-IT\n" -"Content-Type: text/plain; charset=utf-8\n" +"targetLanguage: en-US\n" +"Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Poedit-Basepath: ../../\n" "X-Poedit-KeywordsList: __\n" "X-Poedit-SearchPath-0: .\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Crowdin-Project: tao-open-source\n" +"X-Crowdin-Project-ID: 590867\n" +"X-Crowdin-Language: it\n" +"X-Crowdin-File: /[oat-sa.extension-tao-item] develop/locales/en-US/messages.po\n" +"X-Crowdin-File-ID: 805\n" +"Language-Team: Italian\n" msgid "Note: For empty classes, the RDF format
is the only available format." msgstr "" @@ -63,7 +70,7 @@ msgstr "Crea e progetta item ed esercizi" #, tao-public msgid "Delete" -msgstr "Cancella" +msgstr "" msgid "Deleting this class will break the" msgstr "" @@ -89,7 +96,7 @@ msgstr "Modifica item" #, tao-public msgid "Export" -msgstr "Esporta" +msgstr "" msgid "Expose the property value to create automated categories." msgstr "" @@ -118,7 +125,7 @@ msgstr "Item salvato" #, tao-public msgid "Items" -msgstr "Item" +msgstr "" #, tao-public msgid "Items library" @@ -183,7 +190,7 @@ msgstr "Anteprima" #, tao-public msgid "Properties" -msgstr "Proprietà" +msgstr "" msgid "Published \"%1$s\" in language \"%2$s" msgstr "Pubblicato \"%1$s\" nella lingua \"%2$s" diff --git a/locales/ja-JP/messages.po b/locales/ja-JP/messages.po index af993d667..b7628bfd6 100644 --- a/locales/ja-JP/messages.po +++ b/locales/ja-JP/messages.po @@ -1,17 +1,24 @@ msgid "" msgstr "" -"Project-Id-Version: TAO 2022.09\n" -"PO-Revision-Date: 2022-08-12T16:45:51\n" +"Project-Id-Version: tao-open-source\n" +"PO-Revision-Date: 2023-12-05 14:39\n" "Last-Translator: TAO Translation Team \n" "MIME-Version: 1.0\n" -"Language: ja-JP\n" +"Language: ja\n" "sourceLanguage: en-US\n" -"targetLanguage: ja-JP\n" -"Content-Type: text/plain; charset=utf-8\n" +"targetLanguage: en-US\n" +"Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Poedit-Basepath: ../../\n" "X-Poedit-KeywordsList: __\n" "X-Poedit-SearchPath-0: .\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"X-Crowdin-Project: tao-open-source\n" +"X-Crowdin-Project-ID: 590867\n" +"X-Crowdin-Language: ja\n" +"X-Crowdin-File: /[oat-sa.extension-tao-item] develop/locales/en-US/messages.po\n" +"X-Crowdin-File-ID: 805\n" +"Language-Team: Japanese\n" msgid "Note: For empty classes, the RDF format
is the only available format." msgstr "" @@ -22,11 +29,14 @@ msgstr "実際の大きさ" msgid "and" msgstr "" -msgid "Are you sure you want to delete the class %s and all of its content?" -msgstr "クラス%sとその全てのアイテムを削除しますか?" +msgid "and all of its content?" +msgstr "" + +msgid "Are you sure you want to delete the class" +msgstr "" -msgid "Are you sure you want to delete the item %s?" -msgstr "%sを削除してよろしいですか?" +msgid "Are you sure you want to delete the item" +msgstr "" msgid "Are you sure you want to delete this class and all of its content?" msgstr "このクラスとその内容をすべて削除してよいのですか?" @@ -52,7 +62,7 @@ msgstr "" #, tao-public msgid "Copy To" -msgstr "" +msgstr "指定コピー" #, tao-public msgid "Create and design items and exercises." @@ -78,10 +88,10 @@ msgstr "以後表示しない!" msgid "Duplicate" msgstr "複製" -msgid "Edit item" +msgid "Edit Item" msgstr "アイテム編集" -msgid "Edit Item" +msgid "Edit item" msgstr "アイテム編集" #, tao-public @@ -125,7 +135,7 @@ msgid "Landscape" msgstr "横に長く" msgid "Last updated on %2s" -msgstr "最終更新日:%2s" +msgstr "最終更新日: %2s" msgid "Manage item class schema" msgstr "スキーマ管理" @@ -136,7 +146,7 @@ msgstr "アイテム管理" #, tao-public msgid "Manage Schema" -msgstr "" +msgstr "スキーム管理" msgid "Mobile preview" msgstr "モバイルプレビュー" @@ -147,7 +157,7 @@ msgstr "移動" #, tao-public msgid "Move To" -msgstr "" +msgstr "移動" #, tao-public msgid "New class" @@ -230,9 +240,6 @@ msgstr "実行ディレクトリーを作成できません。" msgid "Unable to delete the selected resource" msgstr "" -msgid "Unable to delete the selected resource because you do not have the required rights to delete part of its content." -msgstr "" - msgid "Unable to render the item from %s : %s %s" msgstr "" @@ -240,7 +247,7 @@ msgid "using it:" msgstr "" msgid "Warning" -msgstr "" +msgstr "警告" msgid "you are trying to delete is too large and contains too many subclasses." msgstr "" diff --git a/locales/lt-LT/messages.po b/locales/lt-LT/messages.po index 11be23ff3..6b002a5b5 100644 --- a/locales/lt-LT/messages.po +++ b/locales/lt-LT/messages.po @@ -1,17 +1,24 @@ msgid "" msgstr "" -"Project-Id-Version: TAO 3.4.0-sprint143\n" -"PO-Revision-Date: 2020-12-18T09:14:34\n" +"Project-Id-Version: tao-open-source\n" +"PO-Revision-Date: 2023-06-14 08:31\n" "Last-Translator: TAO Translation Team \n" "MIME-Version: 1.0\n" -"Language: lt-LT\n" +"Language: lt\n" "sourceLanguage: en-US\n" -"targetLanguage: lt-LT\n" -"Content-Type: text/plain; charset=utf-8\n" +"targetLanguage: en-US\n" +"Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Poedit-Basepath: ../../\n" "X-Poedit-KeywordsList: __\n" "X-Poedit-SearchPath-0: .\n" +"Plural-Forms: nplurals=4; plural=(n%10==1 && (n%100>19 || n%100<11) ? 0 : (n%10>=2 && n%10<=9) && (n%100>19 || n%100<11) ? 1 : n%1!=0 ? 2: 3);\n" +"X-Crowdin-Project: tao-open-source\n" +"X-Crowdin-Project-ID: 590867\n" +"X-Crowdin-Language: lt\n" +"X-Crowdin-File: /[oat-sa.extension-tao-item] develop/locales/en-US/messages.po\n" +"X-Crowdin-File-ID: 805\n" +"Language-Team: Lithuanian\n" msgid "Note: For empty classes, the RDF format
is the only available format." msgstr "" @@ -89,7 +96,7 @@ msgstr "Redaguoti klausimą" #, tao-public msgid "Export" -msgstr "Eksportuoti" +msgstr "" msgid "Expose the property value to create automated categories." msgstr "Pateikti nuostatas automatinių kategorijų sukūrimui." @@ -183,7 +190,7 @@ msgstr "Peržiūra" #, tao-public msgid "Properties" -msgstr "Savybės" +msgstr "" msgid "Published \"%1$s\" in language \"%2$s" msgstr "" diff --git a/locales/nb-NO/messages.po b/locales/nb-NO/messages.po index b4302cd3e..5b026511f 100644 --- a/locales/nb-NO/messages.po +++ b/locales/nb-NO/messages.po @@ -1,17 +1,24 @@ msgid "" msgstr "" -"Project-Id-Version: TAO 2021.10\n" -"PO-Revision-Date: 2021-10-22T12:33:46\n" +"Project-Id-Version: tao-open-source\n" +"PO-Revision-Date: 2023-12-05 14:39\n" "Last-Translator: TAO Translation Team \n" "MIME-Version: 1.0\n" -"Language: nb-NO\n" +"Language: nb_NO\n" "sourceLanguage: en-US\n" -"targetLanguage: nb-NO\n" -"Content-Type: text/plain; charset=utf-8\n" +"targetLanguage: en-US\n" +"Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Poedit-Basepath: ../../\n" "X-Poedit-KeywordsList: __\n" "X-Poedit-SearchPath-0: .\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Crowdin-Project: tao-open-source\n" +"X-Crowdin-Project-ID: 590867\n" +"X-Crowdin-Language: nb\n" +"X-Crowdin-File: /[oat-sa.extension-tao-item] develop/locales/en-US/messages.po\n" +"X-Crowdin-File-ID: 805\n" +"Language-Team: Norwegian Bokmal\n" msgid "Note: For empty classes, the RDF format
is the only available format." msgstr "Merk: For tomme klasser er RDF-formatet
det eneste tilgjengelige formatet." @@ -32,7 +39,7 @@ msgid "Are you sure you want to delete the item" msgstr "Er du sikker på at du vil slette oppgaven" msgid "Are you sure you want to delete this class and all of its content?" -msgstr "Er du sikker på at du vil slette denne mappen og innholdet i den?" +msgstr "Er du sikker på at du vil slette denne mappen og alt innholdet i den?" msgid "Are you sure you want to delete this item?" msgstr "Er du sikker på at du vil slette denne oppgaven?" @@ -89,7 +96,7 @@ msgstr "Rediger oppgave" #, tao-public msgid "Export" -msgstr "Eksporter" +msgstr "" msgid "Expose the property value to create automated categories." msgstr "Vis egenskapsverdien for å lage automatiserte kategorier." @@ -98,7 +105,7 @@ msgid "Failed retrieving %s" msgstr "Kunne ikke hente %s" msgid "Forbidden action" -msgstr "Ugyldig handling" +msgstr "Forbudt handling" #, tao-public msgid "Import" @@ -135,11 +142,11 @@ msgstr "Administrer egenskaper for oppgavemappe" #, tao-public msgid "Manage items" -msgstr "Administrer oppgaver" +msgstr "Administrere oppgaver" #, tao-public msgid "Manage Schema" -msgstr "Administrer skjema" +msgstr "Administrer egenskaper" msgid "Mobile preview" msgstr "Forhåndsvisning for mobil" @@ -183,7 +190,7 @@ msgstr "Forhåndsvis" #, tao-public msgid "Properties" -msgstr "Egenskaper" +msgstr "" msgid "Published \"%1$s\" in language \"%2$s" msgstr "Publisert \"%1$s\" på språk \"%2$s" @@ -192,13 +199,13 @@ msgid "Remove this message" msgstr "Fjern denne meldingen" msgid "Resource deleted" -msgstr "Ressurs slettet" +msgstr "Ressurs ble slettet" msgid "Retrieving external resources" msgstr "Henter eksterne ressurser" msgid "s" -msgstr "s" +msgstr "" msgid "Submit" msgstr "Lever" @@ -231,7 +238,7 @@ msgid "Unable to create deployement directory" msgstr "Kan ikke opprette distribusjonskatalog" msgid "Unable to delete the selected resource" -msgstr "Kan ikke slette den valgte ressursen" +msgstr "Kan ikke slette den valgte filen" msgid "Unable to render the item from %s : %s %s" msgstr "Kan ikke gjengi oppgaven fra %s: %s %s" @@ -243,7 +250,7 @@ msgid "Warning" msgstr "Advarsel" msgid "you are trying to delete is too large and contains too many subclasses." -msgstr "som du prøver å slette er for stor og inneholder for mange undermapper." +msgstr "du prøver å slette er for stor og inneholder for mange undermapper." msgid "You checked out this item %2s ago" msgstr "Du sjekket ut denne oppgaven for %2s siden" diff --git a/locales/ne-NP/messages.po b/locales/ne-NP/messages.po new file mode 100644 index 000000000..e6a00c086 --- /dev/null +++ b/locales/ne-NP/messages.po @@ -0,0 +1,260 @@ +msgid "" +msgstr "" +"Project-Id-Version: tao-open-source\n" +"PO-Revision-Date: 2023-06-14 08:11\n" +"Last-Translator: TAO Translation Team \n" +"MIME-Version: 1.0\n" +"Language: ne\n" +"sourceLanguage: en-US\n" +"targetLanguage: en-US\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Poedit-Basepath: ../../\n" +"X-Poedit-KeywordsList: __\n" +"X-Poedit-SearchPath-0: .\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Crowdin-Project: tao-open-source\n" +"X-Crowdin-Project-ID: 590867\n" +"X-Crowdin-Language: ne-NP\n" +"X-Crowdin-File: /[oat-sa.extension-tao-item] develop/locales/en-US/messages.po\n" +"X-Crowdin-File-ID: 805\n" +"Language-Team: Nepali\n" + +msgid "Note: For empty classes, the RDF format
is the only available format." +msgstr "" + +msgid "Actual size" +msgstr "" + +msgid "and" +msgstr "" + +msgid "and all of its content?" +msgstr "" + +msgid "Are you sure you want to delete the class" +msgstr "" + +msgid "Are you sure you want to delete the item" +msgstr "" + +msgid "Are you sure you want to delete this class and all of its content?" +msgstr "" + +msgid "Are you sure you want to delete this item?" +msgstr "" + +#, tao-public +msgid "Authoring" +msgstr "" + +msgid "Class schema saved" +msgstr "" + +msgid "Close" +msgstr "" + +msgid "Close console" +msgstr "" + +msgid "contains content that is currently in use." +msgstr "" + +#, tao-public +msgid "Copy To" +msgstr "" + +#, tao-public +msgid "Create and design items and exercises." +msgstr "" + +#, tao-public +msgid "Delete" +msgstr "" + +msgid "Deleting this class will break the" +msgstr "" + +msgid "Deleting this item will break the" +msgstr "" + +msgid "Desktop preview" +msgstr "" + +msgid "Don’t show this again!" +msgstr "" + +#, tao-public +msgid "Duplicate" +msgstr "" + +msgid "Edit Item" +msgstr "" + +msgid "Edit item" +msgstr "" + +#, tao-public +msgid "Export" +msgstr "" + +msgid "Expose the property value to create automated categories." +msgstr "" + +msgid "Failed retrieving %s" +msgstr "" + +msgid "Forbidden action" +msgstr "" + +#, tao-public +msgid "Import" +msgstr "" + +msgid "is currently in use." +msgstr "" + +msgid "Item Model" +msgstr "" + +msgid "Item not found" +msgstr "" + +msgid "Item saved" +msgstr "" + +#, tao-public +msgid "Items" +msgstr "" + +#, tao-public +msgid "Items library" +msgstr "" + +msgid "Landscape" +msgstr "" + +msgid "Last updated on %2s" +msgstr "" + +msgid "Manage item class schema" +msgstr "" + +#, tao-public +msgid "Manage items" +msgstr "" + +#, tao-public +msgid "Manage Schema" +msgstr "" + +msgid "Mobile preview" +msgstr "" + +#, tao-public +msgid "Move" +msgstr "" + +#, tao-public +msgid "Move To" +msgstr "" + +#, tao-public +msgid "New class" +msgstr "" + +msgid "No item authoring tool available for the selected type of item: %s" +msgstr "" + +msgid "No item type selected for the current item." +msgstr "" + +msgid "Not yet available" +msgstr "" + +msgid "other" +msgstr "" + +msgid "Please delete the subclasses before." +msgstr "" + +msgid "Please select first the item type!" +msgstr "" + +msgid "Portrait" +msgstr "" + +#, tao-public +msgid "Preview" +msgstr "" + +#, tao-public +msgid "Properties" +msgstr "" + +msgid "Published \"%1$s\" in language \"%2$s" +msgstr "" + +msgid "Remove this message" +msgstr "" + +msgid "Resource deleted" +msgstr "" + +msgid "Retrieving external resources" +msgstr "" + +msgid "s" +msgstr "" + +msgid "Submit" +msgstr "" + +msgid "test" +msgstr "" + +msgid "The class" +msgstr "" + +msgid "The file you tried to upload is not valid" +msgstr "" + +msgid "The item" +msgstr "" + +msgid "The Items module enables the creation and design of items and exercises." +msgstr "" + +msgid "The property is exposed to category addition. Remove exposition ?" +msgstr "" + +msgid "This preview may be scaled to fit your screen. The final rendering may differ." +msgstr "" + +msgid "Unable to copy resources for language %s" +msgstr "" + +msgid "Unable to create deployement directory" +msgstr "" + +msgid "Unable to delete the selected resource" +msgstr "" + +msgid "Unable to render the item from %s : %s %s" +msgstr "" + +msgid "using it:" +msgstr "" + +msgid "Warning" +msgstr "" + +msgid "you are trying to delete is too large and contains too many subclasses." +msgstr "" + +msgid "You checked out this item %2s ago" +msgstr "" + +msgid "Your path contains error" +msgstr "" + diff --git a/locales/nl-NL/messages.po b/locales/nl-NL/messages.po index 74392e771..d64875921 100644 --- a/locales/nl-NL/messages.po +++ b/locales/nl-NL/messages.po @@ -1,17 +1,24 @@ msgid "" msgstr "" -"Project-Id-Version: TAO 3.4.0-sprint143\n" -"PO-Revision-Date: 2020-12-18T09:14:34\n" +"Project-Id-Version: tao-open-source\n" +"PO-Revision-Date: 2023-12-05 14:39\n" "Last-Translator: TAO Translation Team \n" "MIME-Version: 1.0\n" -"Language: nl-NL\n" +"Language: nl\n" "sourceLanguage: en-US\n" -"targetLanguage: nl-NL\n" -"Content-Type: text/plain; charset=utf-8\n" +"targetLanguage: en-US\n" +"Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Poedit-Basepath: ../../\n" "X-Poedit-KeywordsList: __\n" "X-Poedit-SearchPath-0: .\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Crowdin-Project: tao-open-source\n" +"X-Crowdin-Project-ID: 590867\n" +"X-Crowdin-Language: nl\n" +"X-Crowdin-File: /[oat-sa.extension-tao-item] develop/locales/en-US/messages.po\n" +"X-Crowdin-File-ID: 805\n" +"Language-Team: Dutch\n" msgid "Note: For empty classes, the RDF format
is the only available format." msgstr "" @@ -26,16 +33,16 @@ msgid "and all of its content?" msgstr "" msgid "Are you sure you want to delete the class" -msgstr "" +msgstr "Weet je zeker dat je de folder wilt verwijderen" msgid "Are you sure you want to delete the item" -msgstr "" +msgstr "Weet je zeker dat je het item wilt verwijderen" msgid "Are you sure you want to delete this class and all of its content?" msgstr "" msgid "Are you sure you want to delete this item?" -msgstr "" +msgstr "Weet je zeker dat je dit item wilt verwijderen?" #, tao-public msgid "Authoring" @@ -79,7 +86,7 @@ msgstr "Dit niet meer tonen!" #, tao-public msgid "Duplicate" -msgstr "Dupliceren" +msgstr "Dupliceer" msgid "Edit Item" msgstr "Item bewerken" @@ -89,7 +96,7 @@ msgstr "Item bewerken" #, tao-public msgid "Export" -msgstr "Exporteren" +msgstr "" msgid "Expose the property value to create automated categories." msgstr "Blootstellen van de waarde van het veld om geautomatiseerde categorieën te creëren." @@ -102,13 +109,13 @@ msgstr "" #, tao-public msgid "Import" -msgstr "Importeren" +msgstr "" msgid "is currently in use." msgstr "" msgid "Item Model" -msgstr "Item Model" +msgstr "" msgid "Item not found" msgstr "Item niet gevonden" @@ -118,7 +125,7 @@ msgstr "Item opgeslagen" #, tao-public msgid "Items" -msgstr "Items" +msgstr "" #, tao-public msgid "Items library" @@ -135,18 +142,18 @@ msgstr "Beheer item klasse-schema" #, tao-public msgid "Manage items" -msgstr "Item beheer" +msgstr "Beheer items" #, tao-public msgid "Manage Schema" -msgstr "Beheer schema" +msgstr "Schema beheren" msgid "Mobile preview" msgstr "Voorbeeld mobiel" #, tao-public msgid "Move" -msgstr "Verplaatsen" +msgstr "Verplaats" #, tao-public msgid "Move To" @@ -183,7 +190,7 @@ msgstr "Voorbeeld" #, tao-public msgid "Properties" -msgstr "Eigenschappen" +msgstr "" msgid "Published \"%1$s\" in language \"%2$s" msgstr "\"%1$s\" gepubliseerd in de volgende taal: \"%2$s" diff --git a/locales/nn-NO/messages.po b/locales/nn-NO/messages.po new file mode 100644 index 000000000..cd60adbb0 --- /dev/null +++ b/locales/nn-NO/messages.po @@ -0,0 +1,260 @@ +msgid "" +msgstr "" +"Project-Id-Version: tao-open-source\n" +"PO-Revision-Date: 2023-06-14 08:11\n" +"Last-Translator: TAO Translation Team \n" +"MIME-Version: 1.0\n" +"Language: nn_NO\n" +"sourceLanguage: en-US\n" +"targetLanguage: en-US\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Poedit-Basepath: ../../\n" +"X-Poedit-KeywordsList: __\n" +"X-Poedit-SearchPath-0: .\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Crowdin-Project: tao-open-source\n" +"X-Crowdin-Project-ID: 590867\n" +"X-Crowdin-Language: nn-NO\n" +"X-Crowdin-File: /[oat-sa.extension-tao-item] develop/locales/en-US/messages.po\n" +"X-Crowdin-File-ID: 805\n" +"Language-Team: Norwegian Nynorsk\n" + +msgid "Note: For empty classes, the RDF format
is the only available format." +msgstr "" + +msgid "Actual size" +msgstr "" + +msgid "and" +msgstr "" + +msgid "and all of its content?" +msgstr "" + +msgid "Are you sure you want to delete the class" +msgstr "" + +msgid "Are you sure you want to delete the item" +msgstr "" + +msgid "Are you sure you want to delete this class and all of its content?" +msgstr "" + +msgid "Are you sure you want to delete this item?" +msgstr "" + +#, tao-public +msgid "Authoring" +msgstr "" + +msgid "Class schema saved" +msgstr "" + +msgid "Close" +msgstr "" + +msgid "Close console" +msgstr "" + +msgid "contains content that is currently in use." +msgstr "" + +#, tao-public +msgid "Copy To" +msgstr "" + +#, tao-public +msgid "Create and design items and exercises." +msgstr "" + +#, tao-public +msgid "Delete" +msgstr "" + +msgid "Deleting this class will break the" +msgstr "" + +msgid "Deleting this item will break the" +msgstr "" + +msgid "Desktop preview" +msgstr "" + +msgid "Don’t show this again!" +msgstr "" + +#, tao-public +msgid "Duplicate" +msgstr "" + +msgid "Edit Item" +msgstr "" + +msgid "Edit item" +msgstr "" + +#, tao-public +msgid "Export" +msgstr "" + +msgid "Expose the property value to create automated categories." +msgstr "" + +msgid "Failed retrieving %s" +msgstr "" + +msgid "Forbidden action" +msgstr "" + +#, tao-public +msgid "Import" +msgstr "" + +msgid "is currently in use." +msgstr "" + +msgid "Item Model" +msgstr "" + +msgid "Item not found" +msgstr "" + +msgid "Item saved" +msgstr "" + +#, tao-public +msgid "Items" +msgstr "" + +#, tao-public +msgid "Items library" +msgstr "" + +msgid "Landscape" +msgstr "" + +msgid "Last updated on %2s" +msgstr "" + +msgid "Manage item class schema" +msgstr "" + +#, tao-public +msgid "Manage items" +msgstr "" + +#, tao-public +msgid "Manage Schema" +msgstr "" + +msgid "Mobile preview" +msgstr "" + +#, tao-public +msgid "Move" +msgstr "" + +#, tao-public +msgid "Move To" +msgstr "" + +#, tao-public +msgid "New class" +msgstr "" + +msgid "No item authoring tool available for the selected type of item: %s" +msgstr "" + +msgid "No item type selected for the current item." +msgstr "" + +msgid "Not yet available" +msgstr "" + +msgid "other" +msgstr "" + +msgid "Please delete the subclasses before." +msgstr "" + +msgid "Please select first the item type!" +msgstr "" + +msgid "Portrait" +msgstr "" + +#, tao-public +msgid "Preview" +msgstr "" + +#, tao-public +msgid "Properties" +msgstr "" + +msgid "Published \"%1$s\" in language \"%2$s" +msgstr "" + +msgid "Remove this message" +msgstr "" + +msgid "Resource deleted" +msgstr "" + +msgid "Retrieving external resources" +msgstr "" + +msgid "s" +msgstr "" + +msgid "Submit" +msgstr "" + +msgid "test" +msgstr "" + +msgid "The class" +msgstr "" + +msgid "The file you tried to upload is not valid" +msgstr "" + +msgid "The item" +msgstr "" + +msgid "The Items module enables the creation and design of items and exercises." +msgstr "" + +msgid "The property is exposed to category addition. Remove exposition ?" +msgstr "" + +msgid "This preview may be scaled to fit your screen. The final rendering may differ." +msgstr "" + +msgid "Unable to copy resources for language %s" +msgstr "" + +msgid "Unable to create deployement directory" +msgstr "" + +msgid "Unable to delete the selected resource" +msgstr "" + +msgid "Unable to render the item from %s : %s %s" +msgstr "" + +msgid "using it:" +msgstr "" + +msgid "Warning" +msgstr "" + +msgid "you are trying to delete is too large and contains too many subclasses." +msgstr "" + +msgid "You checked out this item %2s ago" +msgstr "" + +msgid "Your path contains error" +msgstr "" + diff --git a/locales/no-NO/messages.po b/locales/no-NO/messages.po new file mode 100644 index 000000000..0198bf3ab --- /dev/null +++ b/locales/no-NO/messages.po @@ -0,0 +1,260 @@ +msgid "" +msgstr "" +"Project-Id-Version: tao-open-source\n" +"PO-Revision-Date: 2023-06-14 08:11\n" +"Last-Translator: TAO Translation Team \n" +"MIME-Version: 1.0\n" +"Language: no\n" +"sourceLanguage: en-US\n" +"targetLanguage: en-US\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Poedit-Basepath: ../../\n" +"X-Poedit-KeywordsList: __\n" +"X-Poedit-SearchPath-0: .\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Crowdin-Project: tao-open-source\n" +"X-Crowdin-Project-ID: 590867\n" +"X-Crowdin-Language: no\n" +"X-Crowdin-File: /[oat-sa.extension-tao-item] develop/locales/en-US/messages.po\n" +"X-Crowdin-File-ID: 805\n" +"Language-Team: Norwegian\n" + +msgid "Note: For empty classes, the RDF format
is the only available format." +msgstr "" + +msgid "Actual size" +msgstr "" + +msgid "and" +msgstr "" + +msgid "and all of its content?" +msgstr "" + +msgid "Are you sure you want to delete the class" +msgstr "" + +msgid "Are you sure you want to delete the item" +msgstr "" + +msgid "Are you sure you want to delete this class and all of its content?" +msgstr "" + +msgid "Are you sure you want to delete this item?" +msgstr "" + +#, tao-public +msgid "Authoring" +msgstr "" + +msgid "Class schema saved" +msgstr "" + +msgid "Close" +msgstr "" + +msgid "Close console" +msgstr "" + +msgid "contains content that is currently in use." +msgstr "" + +#, tao-public +msgid "Copy To" +msgstr "" + +#, tao-public +msgid "Create and design items and exercises." +msgstr "" + +#, tao-public +msgid "Delete" +msgstr "" + +msgid "Deleting this class will break the" +msgstr "" + +msgid "Deleting this item will break the" +msgstr "" + +msgid "Desktop preview" +msgstr "" + +msgid "Don’t show this again!" +msgstr "" + +#, tao-public +msgid "Duplicate" +msgstr "" + +msgid "Edit Item" +msgstr "" + +msgid "Edit item" +msgstr "" + +#, tao-public +msgid "Export" +msgstr "" + +msgid "Expose the property value to create automated categories." +msgstr "" + +msgid "Failed retrieving %s" +msgstr "" + +msgid "Forbidden action" +msgstr "" + +#, tao-public +msgid "Import" +msgstr "" + +msgid "is currently in use." +msgstr "" + +msgid "Item Model" +msgstr "" + +msgid "Item not found" +msgstr "" + +msgid "Item saved" +msgstr "" + +#, tao-public +msgid "Items" +msgstr "" + +#, tao-public +msgid "Items library" +msgstr "" + +msgid "Landscape" +msgstr "" + +msgid "Last updated on %2s" +msgstr "" + +msgid "Manage item class schema" +msgstr "" + +#, tao-public +msgid "Manage items" +msgstr "" + +#, tao-public +msgid "Manage Schema" +msgstr "" + +msgid "Mobile preview" +msgstr "" + +#, tao-public +msgid "Move" +msgstr "" + +#, tao-public +msgid "Move To" +msgstr "" + +#, tao-public +msgid "New class" +msgstr "" + +msgid "No item authoring tool available for the selected type of item: %s" +msgstr "" + +msgid "No item type selected for the current item." +msgstr "" + +msgid "Not yet available" +msgstr "" + +msgid "other" +msgstr "" + +msgid "Please delete the subclasses before." +msgstr "" + +msgid "Please select first the item type!" +msgstr "" + +msgid "Portrait" +msgstr "" + +#, tao-public +msgid "Preview" +msgstr "" + +#, tao-public +msgid "Properties" +msgstr "" + +msgid "Published \"%1$s\" in language \"%2$s" +msgstr "" + +msgid "Remove this message" +msgstr "" + +msgid "Resource deleted" +msgstr "" + +msgid "Retrieving external resources" +msgstr "" + +msgid "s" +msgstr "" + +msgid "Submit" +msgstr "" + +msgid "test" +msgstr "" + +msgid "The class" +msgstr "" + +msgid "The file you tried to upload is not valid" +msgstr "" + +msgid "The item" +msgstr "" + +msgid "The Items module enables the creation and design of items and exercises." +msgstr "" + +msgid "The property is exposed to category addition. Remove exposition ?" +msgstr "" + +msgid "This preview may be scaled to fit your screen. The final rendering may differ." +msgstr "" + +msgid "Unable to copy resources for language %s" +msgstr "" + +msgid "Unable to create deployement directory" +msgstr "" + +msgid "Unable to delete the selected resource" +msgstr "" + +msgid "Unable to render the item from %s : %s %s" +msgstr "" + +msgid "using it:" +msgstr "" + +msgid "Warning" +msgstr "" + +msgid "you are trying to delete is too large and contains too many subclasses." +msgstr "" + +msgid "You checked out this item %2s ago" +msgstr "" + +msgid "Your path contains error" +msgstr "" + diff --git a/locales/pt-BR/messages.po b/locales/pt-BR/messages.po index dd4520cda..c6548d9a1 100644 --- a/locales/pt-BR/messages.po +++ b/locales/pt-BR/messages.po @@ -1,23 +1,23 @@ msgid "" msgstr "" -"Project-Id-Version: tao-3x\n" -"PO-Revision-Date: 2023-04-21 15:46\n" +"Project-Id-Version: tao-open-source\n" +"PO-Revision-Date: 2023-12-05 14:39\n" "Last-Translator: TAO Translation Team \n" "MIME-Version: 1.0\n" -"Language: pt-BR\n" +"Language: pt\n" "sourceLanguage: en-US\n" -"targetLanguage: pt-BR\n" +"targetLanguage: en-US\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Poedit-Basepath: ../../\n" "X-Poedit-KeywordsList: __\n" "X-Poedit-SearchPath-0: .\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -"X-Crowdin-Project: tao-3x\n" -"X-Crowdin-Project-ID: 582145\n" +"X-Crowdin-Project: tao-open-source\n" +"X-Crowdin-Project-ID: 590867\n" "X-Crowdin-Language: pt-BR\n" -"X-Crowdin-File: /taoItems/locales/en-US/messages.po\n" -"X-Crowdin-File-ID: 1525\n" +"X-Crowdin-File: /[oat-sa.extension-tao-item] develop/locales/en-US/messages.po\n" +"X-Crowdin-File-ID: 805\n" "Language-Team: Portuguese, Brazilian\n" msgid "Note: For empty classes, the RDF format
is the only available format." @@ -86,7 +86,7 @@ msgstr "Não mostrar isto novamente!" #, tao-public msgid "Duplicate" -msgstr "Duplicate" +msgstr "Duplicar" msgid "Edit Item" msgstr "Editar Item" @@ -153,7 +153,7 @@ msgstr "Pré-visualização móvel" #, tao-public msgid "Move" -msgstr "Mover-se" +msgstr "Mover" #, tao-public msgid "Move To" @@ -161,7 +161,7 @@ msgstr "Mover para" #, tao-public msgid "New class" -msgstr "Nova classe" +msgstr "Nova pasta" msgid "No item authoring tool available for the selected type of item: %s" msgstr "Nenhuma ferramenta de autoria de item disponível para o tipo selecionado de item: %s" @@ -205,7 +205,7 @@ msgid "Retrieving external resources" msgstr "Recuperando recursos externos" msgid "s" -msgstr "s" +msgstr "" msgid "Submit" msgstr "submeter" diff --git a/locales/pt-PT/messages.po b/locales/pt-PT/messages.po index 37fb83538..6a31ba371 100644 --- a/locales/pt-PT/messages.po +++ b/locales/pt-PT/messages.po @@ -1,17 +1,24 @@ msgid "" msgstr "" -"Project-Id-Version: TAO 3.4.0-sprint143\n" -"PO-Revision-Date: 2020-12-18T09:14:34\n" +"Project-Id-Version: tao-open-source\n" +"PO-Revision-Date: 2023-12-05 14:39\n" "Last-Translator: TAO Translation Team \n" "MIME-Version: 1.0\n" -"Language: pt-PT\n" +"Language: pt\n" "sourceLanguage: en-US\n" -"targetLanguage: pt-PT\n" -"Content-Type: text/plain; charset=utf-8\n" +"targetLanguage: en-US\n" +"Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Poedit-Basepath: ../../\n" "X-Poedit-KeywordsList: __\n" "X-Poedit-SearchPath-0: .\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Crowdin-Project: tao-open-source\n" +"X-Crowdin-Project-ID: 590867\n" +"X-Crowdin-Language: pt-PT\n" +"X-Crowdin-File: /[oat-sa.extension-tao-item] develop/locales/en-US/messages.po\n" +"X-Crowdin-File-ID: 805\n" +"Language-Team: Portuguese\n" msgid "Note: For empty classes, the RDF format
is the only available format." msgstr "" @@ -79,7 +86,7 @@ msgstr "" #, tao-public msgid "Duplicate" -msgstr "Duplicar" +msgstr "Duplicado" msgid "Edit Item" msgstr "Editar Item" @@ -89,7 +96,7 @@ msgstr "Editar item" #, tao-public msgid "Export" -msgstr "Exportar" +msgstr "" msgid "Expose the property value to create automated categories." msgstr "" @@ -102,7 +109,7 @@ msgstr "" #, tao-public msgid "Import" -msgstr "Importar" +msgstr "" msgid "is currently in use." msgstr "" @@ -118,7 +125,7 @@ msgstr "Item guardado" #, tao-public msgid "Items" -msgstr "Items" +msgstr "" #, tao-public msgid "Items library" @@ -135,7 +142,7 @@ msgstr "" #, tao-public msgid "Manage items" -msgstr "Gerir items" +msgstr "" #, tao-public msgid "Manage Schema" @@ -146,7 +153,7 @@ msgstr "" #, tao-public msgid "Move" -msgstr "" +msgstr "Mover" #, tao-public msgid "Move To" @@ -179,7 +186,7 @@ msgstr "" #, tao-public msgid "Preview" -msgstr "Prever" +msgstr "" #, tao-public msgid "Properties" diff --git a/views/js/loader/taoItemsRunner.es5.min.js b/views/js/loader/taoItemsRunner.es5.min.js index 515d20bf2..d6eb5a9f8 100644 --- a/views/js/loader/taoItemsRunner.es5.min.js +++ b/views/js/loader/taoItemsRunner.es5.min.js @@ -1,2 +1,2 @@ -function _typeof(obj){"@babel/helpers - typeof";return _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(obj){return typeof obj}:function(obj){return obj&&"function"==typeof Symbol&&obj.constructor===Symbol&&obj!==Symbol.prototype?"symbol":typeof obj},_typeof(obj)}define("taoItems/assets/manager",["lodash","util/url"],function(_,urlUtil){"use strict";function _interopDefaultLegacy(e){return e&&"object"===_typeof(e)&&"default"in e?e:{default:e}}var ___default=_interopDefaultLegacy(_),urlUtil__default=_interopDefaultLegacy(urlUtil),checkStrategy=function checkStrategy(strategy){if(!___default["default"].isPlainObject(strategy)||!___default["default"].isFunction(strategy.handle)||!___default["default"].isString(strategy.name))throw new TypeError("An asset resolution strategy is an object with a handle method and a name")},assetManagerFactory=function assetManagerFactory(strategies,data,options){var assetManager,cache={};return strategies=___default["default"].isArray(strategies)?strategies:[strategies],data=data||{},options=___default["default"].defaults(options||{},{parseUrl:!0}),assetManager={_strategies:[],addStrategy:function addStrategy(strategy){checkStrategy(strategy),this._strategies.push(strategy)},prependStrategy:function prependStrategy(strategy){checkStrategy(strategy),this._strategies.unshift(strategy)},setStrategies:function setStrategies(newStrategies){var self=this;this._strategies=[],___default["default"].forEach(newStrategies,function(strategy){___default["default"].isPlainObject(strategy)?assetManager.addStrategy(strategy):___default["default"].isFunction(strategy)&&self.addStrategy({name:"strategy_".concat(self._strategies.length+1),handle:strategy})})},setData:function setData(key,value){___default["default"].isString(key)&&"undefined"!=typeof value?data[key]=value:___default["default"].isPlainObject(key)&&(data=key)},getData:function getData(key){return ___default["default"].isString(key)?data[key]:data},resolve:function resolve(url){var resolved,inputUrl;return options.cache&&"undefined"!=typeof cache[url]?cache[url]:(inputUrl=options.parseUrl?urlUtil__default["default"].parse(url):url,___default["default"].forEach(this._strategies,function(strategy){var result=strategy.handle(inputUrl,data);if(result)return resolved=result,!1}),resolved=resolved||"",options.cache&&(cache[url]=resolved),resolved)},resolveBy:function resolveBy(name,url){var inputUrl,resolved="",strategy=___default["default"].find(this._strategies,{name:name});return strategy&&(inputUrl=options.parseUrl?urlUtil__default["default"].parse(url):url,resolved=strategy.handle(inputUrl,data)),resolved},clearCache:function clearCache(){options.cache&&(cache={})}},assetManager.setStrategies(strategies),assetManager};return assetManagerFactory}),define("taoItems/assets/strategies",["util/url","lodash"],function(urlUtil,_){"use strict";function _interopDefaultLegacy(e){return e&&"object"===_typeof(e)&&"default"in e?e:{default:e}}var urlUtil__default=_interopDefaultLegacy(urlUtil),___default=_interopDefaultLegacy(_),prependToUrl=function prependToUrl(url,base,slashcat){return!0===slashcat?"".concat(base.replace(/\/$/,""),"/").concat(url.directory.replace(/^\.\//,"").replace(/^\//,"")).concat(encodeURIComponent(url.file.replace(/^\.\//,"").replace(/^\//,""))):base+url.directory.replace(/^\.?\//,"")+encodeURIComponent(url.file.replace(/^\.?\//,""))},strategies={packedUrl:{name:"packedUrl",handle:function handlePackedUrl(url,data){var type;if(!___default["default"].isUndefined(url.source)&&!___default["default"].isUndefined(data.assets)&&(type=___default["default"].findKey(data.assets,url.source),type&&urlUtil__default["default"].isAbsolute(data.assets[type][url.source])))return data.assets[type][url.source]}},baseUrl:{name:"baseUrl",handle:function handleBaseUrl(url,data){if("string"==typeof data.baseUrl&&urlUtil__default["default"].isRelative(url))return prependToUrl(url,data.baseUrl,data.slashcat)}},itemCssNoCache:{name:"itemCssNoCache",handle:function handleItemCss(url,data){if("string"==typeof data.baseUrl&&urlUtil__default["default"].isRelative(url)&&/\.css$/.test(url.file))return urlUtil__default["default"].build(prependToUrl(url,data.baseUrl,data.slashcat),{bust:Date.now()})}},external:{name:"external",handle:function handleExternal(url){if(urlUtil__default["default"].isAbsolute(url))return url.toString()}},base64:{name:"base64",handle:function handleB64(url){if(urlUtil__default["default"].isBase64(url))return url.toString()}},taomedia:{name:"taomedia",handle:function handleTaoMedia(url,data){var baseUrl=data.baseUrl||"./";if("object"===_typeof(url)&&"taomedia"===url.protocol||/^taomedia:\/\//.test(url.toString()))return baseUrl+url.toString()}}};return strategies}),define("taoItems/runner/api/itemRunner",["jquery","core/eventifier","taoItems/assets/manager"],function($,eventifier,assetManagerFactory){"use strict";function _interopDefaultLegacy(e){return e&&"object"===_typeof(e)&&"default"in e?e:{default:e}}var $__default=_interopDefaultLegacy($),eventifier__default=_interopDefaultLegacy(eventifier),assetManagerFactory__default=_interopDefaultLegacy(assetManagerFactory),itemRunnerFactory=function itemRunnerFactory(providerName){var data=1=name.length)throw new TypeError("It is required to give a name to your provider.");if("object"!==_typeof(provider)||"function"!=typeof provider.init&&"function"!=typeof provider.render)throw new TypeError("A provider is an object that contains at least an init function or a render function.");this.providers=this.providers||{},this.providers[name]=provider},itemRunnerFactory}),define("taoItems/loader/taoItemsRunner.es5.bundle",function(){}); +function _typeof(o){"@babel/helpers - typeof";return _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(o){return typeof o}:function(o){return o&&"function"==typeof Symbol&&o.constructor===Symbol&&o!==Symbol.prototype?"symbol":typeof o},_typeof(o)}define("taoItems/assets/manager",["lodash","util/url"],function(_,urlUtil){"use strict";function _interopDefaultLegacy(e){return e&&"object"===_typeof(e)&&"default"in e?e:{default:e}}var ___default=_interopDefaultLegacy(_),urlUtil__default=_interopDefaultLegacy(urlUtil),checkStrategy=function checkStrategy(strategy){if(!___default["default"].isPlainObject(strategy)||!___default["default"].isFunction(strategy.handle)||!___default["default"].isString(strategy.name))throw new TypeError("An asset resolution strategy is an object with a handle method and a name")},assetManagerFactory=function assetManagerFactory(strategies,data,options){var assetManager,cache={};return strategies=___default["default"].isArray(strategies)?strategies:[strategies],data=data||{},options=___default["default"].defaults(options||{},{parseUrl:!0}),assetManager={_strategies:[],addStrategy:function addStrategy(strategy){checkStrategy(strategy),this._strategies.push(strategy)},prependStrategy:function prependStrategy(strategy){checkStrategy(strategy),this._strategies.unshift(strategy)},setStrategies:function setStrategies(newStrategies){var self=this;this._strategies=[],___default["default"].forEach(newStrategies,function(strategy){___default["default"].isPlainObject(strategy)?assetManager.addStrategy(strategy):___default["default"].isFunction(strategy)&&self.addStrategy({name:"strategy_".concat(self._strategies.length+1),handle:strategy})})},setData:function setData(key,value){___default["default"].isString(key)&&"undefined"!=typeof value?data[key]=value:___default["default"].isPlainObject(key)&&(data=key)},getData:function getData(key){return ___default["default"].isString(key)?data[key]:data},resolve:function resolve(url){var resolved,inputUrl;return options.cache&&"undefined"!=typeof cache[url]?cache[url]:(inputUrl=options.parseUrl?urlUtil__default["default"].parse(url):url,___default["default"].forEach(this._strategies,function(strategy){var result=strategy.handle(inputUrl,data);if(result)return resolved=result,!1}),resolved=resolved||"",options.cache&&(cache[url]=resolved),resolved)},resolveBy:function resolveBy(name,url){var inputUrl,resolved="",strategy=___default["default"].find(this._strategies,{name:name});return strategy&&(inputUrl=options.parseUrl?urlUtil__default["default"].parse(url):url,resolved=strategy.handle(inputUrl,data)),resolved},clearCache:function clearCache(){options.cache&&(cache={})}},assetManager.setStrategies(strategies),assetManager};return assetManagerFactory}),define("taoItems/assets/strategies",["util/url","lodash"],function(urlUtil,_){"use strict";function _interopDefaultLegacy(e){return e&&"object"===_typeof(e)&&"default"in e?e:{default:e}}var urlUtil__default=_interopDefaultLegacy(urlUtil),___default=_interopDefaultLegacy(_),prependToUrl=function prependToUrl(url,base,slashcat){return!0===slashcat?"".concat(base.replace(/\/$/,""),"/").concat(url.directory.replace(/^\.\//,"").replace(/^\//,"")).concat(encodeURIComponent(url.file.replace(/^\.\//,"").replace(/^\//,""))):base+url.directory.replace(/^\.?\//,"")+encodeURIComponent(url.file.replace(/^\.?\//,""))},strategies={packedUrl:{name:"packedUrl",handle:function handlePackedUrl(url,data){var type;if(!___default["default"].isUndefined(url.source)&&!___default["default"].isUndefined(data.assets)&&(type=___default["default"].findKey(data.assets,url.source),type&&urlUtil__default["default"].isAbsolute(data.assets[type][url.source])))return data.assets[type][url.source]}},baseUrl:{name:"baseUrl",handle:function handleBaseUrl(url,data){if("string"==typeof data.baseUrl&&urlUtil__default["default"].isRelative(url))return prependToUrl(url,data.baseUrl,data.slashcat)}},itemCssNoCache:{name:"itemCssNoCache",handle:function handleItemCss(url,data){if("string"==typeof data.baseUrl&&urlUtil__default["default"].isRelative(url)&&/\.css$/.test(url.file))return urlUtil__default["default"].build(prependToUrl(url,data.baseUrl,data.slashcat),{bust:Date.now()})}},external:{name:"external",handle:function handleExternal(url){if(urlUtil__default["default"].isAbsolute(url))return url.toString()}},base64:{name:"base64",handle:function handleB64(url){if(urlUtil__default["default"].isBase64(url))return url.toString()}},taomedia:{name:"taomedia",handle:function handleTaoMedia(url,data){var baseUrl=data.baseUrl||"./";if("object"===_typeof(url)&&"taomedia"===url.protocol||/^taomedia:\/\//.test(url.toString()))return baseUrl+url.toString()}}};return strategies}),define("taoItems/runner/api/itemRunner",["jquery","core/eventifier","taoItems/assets/manager"],function($,eventifier,assetManagerFactory){"use strict";function _interopDefaultLegacy(e){return e&&"object"===_typeof(e)&&"default"in e?e:{default:e}}var $__default=_interopDefaultLegacy($),eventifier__default=_interopDefaultLegacy(eventifier),assetManagerFactory__default=_interopDefaultLegacy(assetManagerFactory),itemRunnerFactory=function itemRunnerFactory(providerName){var data=1=name.length)throw new TypeError("It is required to give a name to your provider.");if("object"!==_typeof(provider)||"function"!=typeof provider.init&&"function"!=typeof provider.render)throw new TypeError("A provider is an object that contains at least an init function or a render function.");this.providers=this.providers||{},this.providers[name]=provider},itemRunnerFactory}),define("taoItems/loader/taoItemsRunner.es5.bundle",function(){}); //# sourceMappingURL=taoItemsRunner.es5.min.js.map \ No newline at end of file diff --git a/views/js/loader/taoItemsRunner.es5.min.js.map b/views/js/loader/taoItemsRunner.es5.min.js.map index e79dcdda8..c5252f32c 100644 --- a/views/js/loader/taoItemsRunner.es5.min.js.map +++ b/views/js/loader/taoItemsRunner.es5.min.js.map @@ -1 +1 @@ -{"version":3,"names":["define","_","urlUtil","_interopDefaultLegacy","e","_typeof","default","___default","urlUtil__default","checkStrategy","strategy","isPlainObject","isFunction","handle","isString","name","TypeError","assetManagerFactory","strategies","data","options","assetManager","cache","isArray","defaults","parseUrl","_strategies","addStrategy","push","prependStrategy","unshift","setStrategies","newStrategies","self","forEach","concat","length","setData","key","value","getData","resolve","url","resolved","inputUrl","parse","result","resolveBy","find","clearCache","prependToUrl","base","slashcat","replace","directory","encodeURIComponent","file","packedUrl","handlePackedUrl","type","isUndefined","source","assets","findKey","isAbsolute","baseUrl","handleBaseUrl","isRelative","itemCssNoCache","handleItemCss","test","build","bust","Date","now","external","handleExternal","toString","base64","handleB64","isBase64","taomedia","handleTaoMedia","protocol","$","eventifier","$__default","eventifier__default","assetManagerFactory__default","itemRunnerFactory","providerName","arguments","flow","init","done","pending","render","providers","Object","keys","Error","provider","defaultStrategy","suspended","closed","container","newData","_this","initDone","filter","pendingTask","trigger","assign","call","contextData","assetManagerOptions","err","message","elt","_this2","newOptions","renderDone","state","HTMLElement","setState","get","clear","_this3","clearDone","getState","_this4","isInitialStateRestore","Array","itemData","Promise","getOptions","setOptions","getResponses","renderFeedbacks","feedbacks","itemSession","suspend","then","close","resume","isSuspended","isClosed","register","registerProvider"],"sources":["../assets/manager.js","../assets/strategies.js","../runner/api/itemRunner.js","module-create.js"],"sourcesContent":["define('taoItems/assets/manager',['lodash', 'util/url'], (function (_, urlUtil) { 'use strict';\n\n function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }\n\n var ___default = /*#__PURE__*/_interopDefaultLegacy(_);\n var urlUtil__default = /*#__PURE__*/_interopDefaultLegacy(urlUtil);\n\n /*\n * This program is free software; you can redistribute it and/or\n * modify it under the terms of the GNU General Public License\n * as published by the Free Software Foundation; under version 2\n * of the License (non-upgradable).\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\n *\n * Copyright (c) 2015-2019 (original work) Open Assessment Technologies SA;\n *\n */\n\n /**\n * @typedef AssetStrategy Defines a way to resolve an asset path\n * @property {String} name - the strategy name\n * @property {assetStrategyHandle} handle - how to resolve the strategy.\n */\n\n /**\n * @callback assetStrategyHandle\n * @param {String|Object} url - the URL to resolved. If parseUrl, it's an object that contains host, port, search, queryString, etc.\n * @param {Object} data - the context data\n * @returns {String?} falsy if not resolved otherwise the resolved URL\n */\n\n /**\n * Check if the given object is a valid AssetStrategy\n * @param {AssetStrategy} strategy\n * @throws {TypeError}\n */\n var checkStrategy = function checkStrategy(strategy) {\n if (!___default[\"default\"].isPlainObject(strategy) || !___default[\"default\"].isFunction(strategy.handle) || !___default[\"default\"].isString(strategy.name)) {\n throw new TypeError('An asset resolution strategy is an object with a handle method and a name');\n }\n };\n\n /**\n * The assetManagerFactory create a new assetManager with the given resolution strategies and a data context.\n *\n * @example\n * //define AssetStrategies with a name and a handle method\n * var strategies = [{\n * name : 'external',\n * handle : function(url, data){\n * if(/^http/.test(url)){\n * return path;\n * }\n * }\n * }, {\n * name : 'relative',\n * handle : function(url, data){\n * if(/^((\\.\\/)|(\\w\\/))/){\n * return data.baseUrl + '/' + url ;\n * }\n * }\n * }]);\n *\n * var assetManager = assetManagerFactory(strategies, { baseUrl : 'http://t.oa/public/assets/' });\n * assetManager.resolve('http://foo/bar.png'); //will resolved using external\n * assetManager.resolve('bar.png'); //will resolved using relative strategy\n *\n * @param {AssetStrategy[]} strategies - the strategies\n * @param {Object} data - the context data\n * @param {Object} [options] - the manager options\n * @param {Boolean} [options.parseUrl = true] - If the URL to give to the strategies should be parsed or given as it is.\n * @param {Boolean} [options.cache] - resolve the same URL only once and store the result in memory.\n *\n * @exports taoItems/assets/manager\n * @namespace assetManagerFactory\n * @returns {Object} Asset manager\n */\n var assetManagerFactory = function assetManagerFactory(strategies, data, options) {\n var cache = {},\n assetManager;\n\n strategies = ___default[\"default\"].isArray(strategies) ? strategies : [strategies];\n data = data || {};\n options = ___default[\"default\"].defaults(options || {}, {\n parseUrl: true\n });\n\n /**\n * A brand new asset manager is created by the factory\n */\n assetManager = {\n /**\n * The stack of strategies that would be used to resolve the asset path\n * @type {AssetStrategy[]}\n */\n _strategies: [],\n\n /**\n * Add an asset resolution strategy at the end of the stack.\n * The strategies will be evaluated in the order they've been added.\n * @param {AssetStrategy} strategy - the strategy to add\n * @throws {TypeError} if the strategy isn't defined correctly\n */\n addStrategy: function addStrategy(strategy) {\n checkStrategy(strategy);\n\n this._strategies.push(strategy);\n },\n\n /**\n * Add an asset resolution strategy at the beginning of the stack.\n * The strategies will be evaluated in the order they've been added.\n * @param {AssetStrategy} strategy - the strategy to add\n * @throws {TypeError} if the strategy isn't defined correctly\n */\n prependStrategy: function prependStrategy(strategy) {\n checkStrategy(strategy);\n\n this._strategies.unshift(strategy);\n },\n\n /**\n * Change the strategies\n * @param {AssetStrategy[]} newStrategies - the strategies\n * @throws {TypeError} if the strategy isn't defined correctly\n */\n setStrategies: function setStrategies(newStrategies) {\n var self = this;\n\n this._strategies = [];\n\n //assign the strategies to the assetManager\n ___default[\"default\"].forEach(newStrategies, function(strategy) {\n //if it's an object we add it directly\n if (___default[\"default\"].isPlainObject(strategy)) {\n assetManager.addStrategy(strategy);\n\n //if it's a function, we create the strategy with a generated name\n } else if (___default[\"default\"].isFunction(strategy)) {\n self.addStrategy({\n name: `strategy_${self._strategies.length + 1}`,\n handle: strategy\n });\n }\n });\n },\n\n /**\n * Set context data\n * @param {String|Object} [key] - the key of the data to set or the data values if it's an object\n * @param {*} [value] - the value to set if a key is given\n */\n setData: function setData(key, value) {\n if (___default[\"default\"].isString(key) && typeof value !== 'undefined') {\n data[key] = value;\n } else if (___default[\"default\"].isPlainObject(key)) {\n data = key;\n }\n },\n\n /**\n * Get context data\n * @param {String} [key] - if we want the value of a particular key\n * @returns {Object|*} all the data or the propriety value if key is given\n */\n getData: function getData(key) {\n if (___default[\"default\"].isString(key)) {\n return data[key];\n }\n return data;\n },\n\n /**\n * Resolve the given URL against the strategies\n * @param {String} url - the URL to resolve\n * @returns {String?} the resolved URL or nothing\n */\n resolve: function resolve(url) {\n var resolved;\n var inputUrl;\n\n //if caching try to load the value from the cache\n if (options.cache && typeof cache[url] !== 'undefined') {\n return cache[url];\n }\n\n //parse the URL ?\n inputUrl = options.parseUrl ? urlUtil__default[\"default\"].parse(url) : url;\n\n //call strategies handlers, in their order until once returns something\n ___default[\"default\"].forEach(this._strategies, function(strategy) {\n var result = strategy.handle(inputUrl, data);\n if (result) {\n resolved = result;\n return false;\n }\n });\n\n resolved = resolved || '';\n\n if (options.cache) {\n cache[url] = resolved;\n }\n\n return resolved;\n },\n\n /**\n * Resolve the given URL against the strategy identified by the given name\n * @param {String} name - the strategy name\n * @param {String} url - the URL to resolve\n * @returns {String?} the resolved URL or nothing\n */\n resolveBy: function resolveBy(name, url) {\n var inputUrl;\n var resolved = '';\n var strategy = ___default[\"default\"].find(this._strategies, { name: name });\n if (strategy) {\n //parse the URL ?\n inputUrl = options.parseUrl ? urlUtil__default[\"default\"].parse(url) : url;\n resolved = strategy.handle(inputUrl, data);\n }\n return resolved;\n },\n\n /**\n * When the cache is used, it could be useful to clear the cache\n */\n clearCache: function clearCache() {\n if (options.cache) {\n cache = {};\n }\n }\n };\n\n assetManager.setStrategies(strategies);\n\n return assetManager;\n };\n\n return assetManagerFactory;\n\n}));\n\n","define('taoItems/assets/strategies',['util/url', 'lodash'], (function (urlUtil, _) { 'use strict';\n\n function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }\n\n var urlUtil__default = /*#__PURE__*/_interopDefaultLegacy(urlUtil);\n var ___default = /*#__PURE__*/_interopDefaultLegacy(_);\n\n /*\n * This program is free software; you can redistribute it and/or\n * modify it under the terms of the GNU General Public License\n * as published by the Free Software Foundation; under version 2\n * of the License (non-upgradable).\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\n *\n * Copyright (c) 2015-2019 (original work) Open Assessment Technologies SA;\n *\n */\n\n /**\n * Prepend a base to an URL\n * @param {Object} url - a parsed URL\n * @param {String} base - the base to prepend\n * @param {Boolean} [slashcat = false] - remove dots, double slashes, etc.\n * @returns {String} the URL\n */\n var prependToUrl = function prependToUrl(url, base, slashcat) {\n //is slashcat we manage slash concact\n if (slashcat === true) {\n return `${base.replace(/\\/$/, '')}/${url.directory.replace(/^\\.\\//, '').replace(/^\\//, '')}${encodeURIComponent(url.file.replace(/^\\.\\//, '').replace(/^\\//, ''))}`;\n }\n\n return base + url.directory.replace(/^\\.?\\//, '') + encodeURIComponent(url.file.replace(/^\\.?\\//, ''));\n };\n\n /**\n * Unrelated strategies accessible by there name.\n * Remember to not use the whole object, but each one in an array since the order matters.\n *\n * @exports taoItems/assets/strategies\n */\n var strategies = {\n //the packedUrl will replace the asset with the url given in the assets part\n //the assetManager should add the assets part to data with .setData('assets' itemData.content.assets)\n packedUrl: {\n name: 'packedUrl',\n handle: function handlePackedUrl(url, data) {\n var type;\n if (!___default[\"default\"].isUndefined(url.source) && !___default[\"default\"].isUndefined(data.assets)) {\n type = ___default[\"default\"].findKey(data.assets, url.source);\n if (type && urlUtil__default[\"default\"].isAbsolute(data.assets[type][url.source])) {\n return data.assets[type][url.source];\n }\n }\n }\n },\n //the baseUrl concats the baseUrl in data if the url is relative\n baseUrl: {\n name: 'baseUrl',\n handle: function handleBaseUrl(url, data) {\n if (typeof data.baseUrl === 'string' && urlUtil__default[\"default\"].isRelative(url)) {\n return prependToUrl(url, data.baseUrl, data.slashcat);\n }\n }\n },\n\n //bust the cache for item CSS\n itemCssNoCache: {\n name: 'itemCssNoCache',\n handle: function handleItemCss(url, data) {\n if (typeof data.baseUrl === 'string' && urlUtil__default[\"default\"].isRelative(url) && /\\.css$/.test(url.file)) {\n return urlUtil__default[\"default\"].build(prependToUrl(url, data.baseUrl, data.slashcat), { bust: Date.now() });\n }\n }\n },\n\n //absolute URL are just left intact\n external: {\n name: 'external',\n handle: function handleExternal(url) {\n if (urlUtil__default[\"default\"].isAbsolute(url)) {\n return url.toString();\n }\n }\n },\n\n //the base64 encoded resources are also left intact\n base64: {\n name: 'base64',\n handle: function handleB64(url) {\n if (urlUtil__default[\"default\"].isBase64(url)) {\n return url.toString();\n }\n }\n },\n\n //special tao media protocol\n taomedia: {\n name: 'taomedia',\n handle: function handleTaoMedia(url, data) {\n //either a baseUrl is given or if empty, taomedia resources are managed as relative resources\n var baseUrl = data.baseUrl || './';\n if ((typeof url === 'object' && url.protocol === 'taomedia') || /^taomedia:\\/\\//.test(url.toString())) {\n return baseUrl + url.toString();\n }\n }\n }\n };\n\n return strategies;\n\n}));\n\n","define('taoItems/runner/api/itemRunner',['jquery', 'core/eventifier', 'taoItems/assets/manager'], (function ($, eventifier, assetManagerFactory) { 'use strict';\n\n function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }\n\n var $__default = /*#__PURE__*/_interopDefaultLegacy($);\n var eventifier__default = /*#__PURE__*/_interopDefaultLegacy(eventifier);\n var assetManagerFactory__default = /*#__PURE__*/_interopDefaultLegacy(assetManagerFactory);\n\n /*\n * This program is free software; you can redistribute it and/or\n * modify it under the terms of the GNU General Public License\n * as published by the Free Software Foundation; under version 2\n * of the License (non-upgradable).\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\n *\n * Copyright (c) 2014-2021 (original work) Open Assessment Technlogies SA (under the project TAO-PRODUCT);\n *\n */\n\n /**\n *\n * Builds a brand new {@link itemRunner}.\n *\n * The factory is an internal mechanism to create encapsulated contexts.\n * I suggest you to use directly the name itemRunner when you require this module.\n *\n * @example require(['itemRunner'], function(itemRunner){\n * itemRunner({itemId : 12})\n * .on('statechange', function(state){\n *\n * })\n * .on('ready', function(){\n *\n * })\n * .on('response', function(){\n *\n * })\n * .init()\n * .render($('.item-container'));\n * });\n *\n * @exports itemRunner\n * @namespace itemRunnerFactory\n *\n * @param {String} [providerName] - the name of a provider previously registered see {@link itemRunnerFactory#register}\n * @param {Object} [data] - the data of the item to run\n * @param {Object} [options]\n *\n * @returns {itemRunner}\n */\n const itemRunnerFactory = function itemRunnerFactory(providerName, data = {}, options = {}) {\n //flow structure to manage sync calls in an async context.\n const flow = {\n init: {\n done: false,\n pending: []\n },\n render: {\n done: false,\n pending: []\n }\n };\n\n //optional params based on type\n if (typeof providerName === 'object') {\n data = providerName;\n providerName = void 0;\n }\n\n /*\n * Select the provider\n */\n const providers = itemRunnerFactory.providers;\n\n //check a provider is available\n if (!providers || Object.keys(providers).length === 0) {\n throw new Error('No provider registered');\n }\n\n let provider;\n\n if (typeof providerName === 'string' && providerName.length > 0) {\n provider = providers[providerName];\n } else if (Object.keys(providers).length === 1) {\n //if there is only one provider, then we take this one\n providerName = Object.keys(providers)[0];\n provider = providers[providerName];\n }\n\n //now we should have a provider\n if (!provider) {\n throw new Error('No candidate found for the provider');\n }\n\n //set up a default assetManager using a \"do nothing\" strategy\n const assetManager =\n options.assetManager ||\n assetManagerFactory__default[\"default\"](function defaultStrategy(url) {\n return url.toString();\n });\n\n let suspended = false;\n let closed = false;\n\n /**\n * The itemRunner\n * @typedef {Object} itemRunner\n */\n\n /**\n * @type {itemRunner}\n * @lends itemRunnerFactory\n */\n return eventifier__default[\"default\"]({\n /**\n * Items container\n * @type {HTMLElement}\n */\n container: null,\n\n /**\n * The asset manager used to resolve asset\n * @see taoItems/asset/manager\n * @type {AssetManager}\n */\n assetManager,\n\n /**\n * To give options to the item runner provider\n * @type {Object}\n */\n options,\n\n /**\n * Initialize the runner.\n * @param {Object} [newData] - just in case you want to change item data (it should not occurs in most case)\n * @returns {itemRunner} to chain calls\n *\n * @fires itemRunner#init\n */\n init(newData) {\n /**\n * Call back when init is done\n */\n const initDone = () => {\n //manage pending tasks the first time\n if (flow.init.done === false) {\n flow.init.done = true;\n\n flow.init.pending\n .filter(pendingTask => typeof pendingTask === 'function')\n .forEach(pendingTask => pendingTask());\n\n flow.init.pending = [];\n }\n\n /**\n * the runner has initialized correclty the item\n * @event itemRunner#init\n */\n this.trigger('init');\n };\n\n //merge data\n if (newData) {\n data = Object.assign(data, newData);\n }\n\n if (typeof provider.init === 'function') {\n /**\n * Calls provider's initialization with item data.\n * @callback InitItemProvider\n * @param {Object} data - the item data\n * @param {Function} done - call once the initialization is done\n */\n provider.init.call(this, data, initDone);\n } else {\n initDone();\n }\n\n return this;\n },\n\n /**\n * Configure the assetManager\n * @see taoItems/assets/manager\n * @param {AssetStrategy[]} strategies - the resolving strategies\n * @param {Object} [contextData] - the context data\n * @param {Object} [assetManagerOptions] - the asset manager options\n * @returns {itemRunner} to chain calls\n */\n assets(strategies, contextData, assetManagerOptions) {\n try {\n this.assetManager = assetManagerFactory__default[\"default\"](strategies, contextData, assetManagerOptions);\n } catch (err) {\n this.trigger(\n 'error',\n new Error(`Something was wrong while configuring the asset manager : ${err.message}`)\n );\n }\n\n return this;\n },\n\n /**\n * Initialize the current item.\n *\n * @param {HTMLElement|jQueryElement} elt - the DOM element that is going to contain the rendered item.\n * @param {Object} [newOptions] - to update the runner options\n * @returns {itemRunner} to chain calls\n *\n * @fires itemRunner#ready\n * @fires itemRunner#render\n * @fires itemRunner#error if the elt isn't valid\n *\n * @fires itemRunner#statechange the provider is reponsible to trigger this event\n * @fires itemRunner#responsechange the provider is reponsible to trigger this event\n */\n render(elt, newOptions = {}) {\n /**\n * Call back when render is done\n */\n const renderDone = () => {\n //manage pending tasks the first time\n if (flow.render.done === false) {\n flow.render.done = true;\n\n flow.render.pending\n .filter(pendingTask => typeof pendingTask === 'function')\n .forEach(pendingTask => pendingTask());\n\n flow.render.pending = [];\n }\n\n /**\n * The item is rendered\n * @event itemRunner#render\n */\n this.trigger('render');\n\n /**\n * The item is ready.\n * Alias of {@link itemRunner#render}\n * @event itemRunner#ready\n */\n this.trigger('ready');\n };\n\n options = Object.assign(options || {}, newOptions);\n if (!options.state) {\n options.state = {};\n }\n\n //check elt\n if (!(elt instanceof HTMLElement) && !(elt instanceof $__default[\"default\"])) {\n return this.trigger(\n 'error',\n new Error('A valid HTMLElement (or a jquery element) at least is required to render the item')\n );\n }\n\n //set item state to restore item state after rendering if the provider enables it\n if (options.state) {\n this.setState(options.state, true);\n }\n\n if (flow.init.done === false) {\n flow.init.pending.push(() => this.render(elt, options));\n } else {\n //we keep a reference to the container\n if (elt instanceof $__default[\"default\"]) {\n this.container = elt.get(0);\n } else {\n this.container = elt;\n }\n\n //the state will be applied only when the rendering is made\n\n if (typeof provider.render === 'function') {\n /**\n * Calls the provider's render\n * @callback RendertItemProvider\n * @param {HTMLElement} elt - the element to render inside\n * @param {Function} done - call once the render is done\n * @param {Object} [options] - the array of options that the item runner provider may supports\n * @param {Object} [options.state] - pass initial item state to method render() in case the item runner provider require initial state to render\n */\n provider.render.call(this, this.container, renderDone, options);\n } else {\n renderDone();\n }\n }\n\n return this;\n },\n\n /**\n * Clear the running item.\n * @returns {itemRunner}\n *\n * @fires itemRunner#clear\n */\n clear() {\n /**\n * Call back when clear is done\n */\n const clearDone = () => {\n /**\n * The item is ready.\n * @event itemRunner#clear\n */\n this.trigger('clear');\n };\n\n if (typeof provider.clear === 'function') {\n /**\n * Calls the provider's clear\n * @callback ClearItemProvider\n * @param {HTMLElement} elt - item's container\n * @param {Function} done - call once the initialization is done\n */\n provider.clear.call(this, this.container, clearDone);\n } else {\n clearDone();\n }\n\n return this;\n },\n\n /**\n * Get the current state of the running item.\n *\n * @returns {Object|Null} state\n */\n getState() {\n if (typeof provider.getState === 'function') {\n /**\n * Calls the provider's getState\n * @callback GetStateItemProvider\n * @returns {Object} the state\n */\n return provider.getState.call(this);\n }\n return null;\n },\n\n /**\n * Set the current state of the running item.\n * This should have the effect to restore the item state.\n *\n * @param {Object} state - the new state\n * @param {boolean} [isInitialStateRestore] - state restoring or not\n * @returns {itemRunner}\n *\n * @fires itemRunner#error if the state type doesn't match\n */\n setState(state, isInitialStateRestore = false) {\n if (!state || typeof state !== 'object' || Array.isArray(state)) {\n return this.trigger(\n 'error',\n new Error(`The item's state must be a JavaScript Plain Object: ${typeof state} given`)\n );\n }\n\n //the state will be applied only when the rendering is made\n if (flow.render.done === false) {\n flow.render.pending.push(() => this.setState(state, isInitialStateRestore));\n } else if (typeof provider.setState === 'function') {\n /**\n * Calls the provider's setState\n * @callback SetStateItemProvider\n * @param {Object} state - the state to set\n */\n provider.setState.call(this, state, isInitialStateRestore);\n }\n return this;\n },\n\n /**\n * Get the item data.\n *\n * @returns {Object} the item's data\n */\n getData() {\n return data;\n },\n\n /**\n * Replaces item data in rendered item\n * @param {object} itemData\n * @returns {Promise}\n */\n setData(itemData) {\n data = itemData;\n if (typeof provider.setData === 'function') {\n return provider.setData.call(this, itemData);\n }\n return Promise.resolve();\n },\n\n /**\n * Get the item runner options.\n *\n * @returns {Object} the item rendering options\n */\n getOptions() {\n return this.options;\n },\n\n /**\n * Replaces item runner's options.\n * @param {Object} newOptions - the options to set\n * @returns {Promise}\n */\n setOptions(newOptions = {}) {\n this.options = newOptions;\n if (typeof provider.setOptions === 'function') {\n return provider.setOptions.call(this, this.options);\n }\n return Promise.resolve();\n },\n\n /**\n * Get the responses of the running item.\n *\n * @returns {Object} the item's responses\n */\n getResponses() {\n if (typeof provider.getResponses === 'function') {\n /**\n * Calls the provider's getResponses\n * @callback GetResponsesItemProvider\n * @returns {Object} the responses\n */\n return provider.getResponses.call(this);\n }\n return {};\n },\n\n /**\n * Append the modalFeedbacks into the item and create queue of feedbacks that should be displayed to the user\n *\n * @param {Object|Array} feedbacks - all feedbacks of the item\n * @param {Object|Array} itemSession - determine feedbacks which should be displayed\n * @param {function} done - runs after loading feedbacks into the item\n * # have parameter {Object|Array} renderingQueue with prepared queue of the feedbacks for displaying to the user\n *\n *\n * Example:\n *\n * this.renderFeedbacks({f1: 'feedback1', f2: 'feedback2', f3: 'feedback3'}, ['f2'], function(renderingQueue){\n * renderingQueue; // {'feedback2'}\n * });\n */\n renderFeedbacks(feedbacks, itemSession, done) {\n if (typeof provider.renderFeedbacks === 'function') {\n provider.renderFeedbacks.call(this, feedbacks, itemSession, done);\n }\n },\n\n /**\n * Call the provider's suspend method\n * @returns {Promise}\n */\n suspend() {\n if (!suspended && flow.render.done && typeof provider.suspend === 'function') {\n return provider.suspend.call(this).then(result => {\n suspended = true;\n return result;\n });\n }\n return Promise.resolve();\n },\n\n /**\n * Call the provider's hide method\n * @returns {Promise}\n */\n close() {\n if (!closed && flow.render.done && typeof provider.close === 'function') {\n return provider.close.call(this).then(result => {\n closed = true;\n return result;\n });\n }\n return Promise.resolve();\n },\n\n /**\n * Call the provider's resume method.\n * We can resume a previously suspended or closed item.\n * @returns {Promise}\n */\n resume() {\n if ( (suspended || closed) && flow.render.done && typeof provider.resume === 'function') {\n return provider.resume.call(this).then(result => {\n suspended = false;\n closed = false;\n return result;\n });\n }\n return Promise.resolve();\n },\n\n /**\n * Is the item runner suspended\n * @returns {boolean} true if suspended\n */\n isSuspended() {\n return suspended;\n },\n\n /**\n * Is the item runner closed\n * @returns {boolean} true if closed\n */\n isClosed(){\n return closed;\n },\n });\n };\n\n /**\n * Register an Item Runtime Provider into the item runner.\n * The provider provides the behavior required by the item runner.\n *\n * @param {String} name - the provider name will be used to select the provider while instantiating the runner\n *\n * @param {Object} provider - the Item Runtime Provider as a plain object. The itemRunner forwards encapsulate and delegate calls to the provider.\n * @param {InitItemProvider} provider.init - the provider initializes the item from it's data, for example loading libraries, add some listeners, etc.\n * @param {RenderItemProvider} provider.render - the provider renders the item within the given container element.\n * @param {ClearItemProvider} [provider.clear] - the provider clears the item.\n * @param {GetStateItemProvider} [provider.getState] - the provider get the item's state.\n * @param {SetStateItemProvider} [provider.setState] - the provider restore the item to the given state.\n * @param {GetRespnsesItemProvider} [provider.getResponses] - the provider gives the current responses.\n *\n * @throws TypeError when a wrong provider is given or an empty name.\n */\n itemRunnerFactory.register = function registerProvider(name, provider) {\n //type checking\n if (typeof name !== 'string' || name.length <= 0) {\n throw new TypeError('It is required to give a name to your provider.');\n }\n if (\n typeof provider !== 'object' ||\n (typeof provider.init !== 'function' && typeof provider.render !== 'function')\n ) {\n throw new TypeError('A provider is an object that contains at least an init function or a render function.');\n }\n\n this.providers = this.providers || {};\n this.providers[name] = provider;\n };\n\n return itemRunnerFactory;\n\n}));\n\n","\ndefine(\"taoItems/loader/taoItemsRunner.es5.bundle\", function(){});\n"],"mappings":"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"} \ No newline at end of file +{"version":3,"names":["define","_","urlUtil","_interopDefaultLegacy","e","_typeof","default","___default","urlUtil__default","checkStrategy","strategy","isPlainObject","isFunction","handle","isString","name","TypeError","assetManagerFactory","strategies","data","options","assetManager","cache","isArray","defaults","parseUrl","_strategies","addStrategy","push","prependStrategy","unshift","setStrategies","newStrategies","self","forEach","concat","length","setData","key","value","getData","resolve","url","resolved","inputUrl","parse","result","resolveBy","find","clearCache","prependToUrl","base","slashcat","replace","directory","encodeURIComponent","file","packedUrl","handlePackedUrl","type","isUndefined","source","assets","findKey","isAbsolute","baseUrl","handleBaseUrl","isRelative","itemCssNoCache","handleItemCss","test","build","bust","Date","now","external","handleExternal","toString","base64","handleB64","isBase64","taomedia","handleTaoMedia","protocol","$","eventifier","$__default","eventifier__default","assetManagerFactory__default","itemRunnerFactory","providerName","arguments","flow","init","done","pending","render","providers","Object","keys","Error","provider","defaultStrategy","suspended","closed","container","newData","_this","initDone","filter","pendingTask","trigger","assign","call","contextData","assetManagerOptions","err","message","elt","_this2","newOptions","renderDone","state","HTMLElement","setState","get","clear","_this3","clearDone","getState","_this4","isInitialStateRestore","Array","itemData","Promise","getOptions","setOptions","getResponses","renderFeedbacks","feedbacks","itemSession","suspend","then","close","resume","isSuspended","isClosed","register","registerProvider"],"sources":["../assets/manager.js","../assets/strategies.js","../runner/api/itemRunner.js","module-create.js"],"sourcesContent":["define('taoItems/assets/manager',['lodash', 'util/url'], (function (_, urlUtil) { 'use strict';\n\n function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }\n\n var ___default = /*#__PURE__*/_interopDefaultLegacy(_);\n var urlUtil__default = /*#__PURE__*/_interopDefaultLegacy(urlUtil);\n\n /*\n * This program is free software; you can redistribute it and/or\n * modify it under the terms of the GNU General Public License\n * as published by the Free Software Foundation; under version 2\n * of the License (non-upgradable).\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\n *\n * Copyright (c) 2015-2019 (original work) Open Assessment Technologies SA;\n *\n */\n\n /**\n * @typedef AssetStrategy Defines a way to resolve an asset path\n * @property {String} name - the strategy name\n * @property {assetStrategyHandle} handle - how to resolve the strategy.\n */\n\n /**\n * @callback assetStrategyHandle\n * @param {String|Object} url - the URL to resolved. If parseUrl, it's an object that contains host, port, search, queryString, etc.\n * @param {Object} data - the context data\n * @returns {String?} falsy if not resolved otherwise the resolved URL\n */\n\n /**\n * Check if the given object is a valid AssetStrategy\n * @param {AssetStrategy} strategy\n * @throws {TypeError}\n */\n var checkStrategy = function checkStrategy(strategy) {\n if (!___default[\"default\"].isPlainObject(strategy) || !___default[\"default\"].isFunction(strategy.handle) || !___default[\"default\"].isString(strategy.name)) {\n throw new TypeError('An asset resolution strategy is an object with a handle method and a name');\n }\n };\n\n /**\n * The assetManagerFactory create a new assetManager with the given resolution strategies and a data context.\n *\n * @example\n * //define AssetStrategies with a name and a handle method\n * var strategies = [{\n * name : 'external',\n * handle : function(url, data){\n * if(/^http/.test(url)){\n * return path;\n * }\n * }\n * }, {\n * name : 'relative',\n * handle : function(url, data){\n * if(/^((\\.\\/)|(\\w\\/))/){\n * return data.baseUrl + '/' + url ;\n * }\n * }\n * }]);\n *\n * var assetManager = assetManagerFactory(strategies, { baseUrl : 'http://t.oa/public/assets/' });\n * assetManager.resolve('http://foo/bar.png'); //will resolved using external\n * assetManager.resolve('bar.png'); //will resolved using relative strategy\n *\n * @param {AssetStrategy[]} strategies - the strategies\n * @param {Object} data - the context data\n * @param {Object} [options] - the manager options\n * @param {Boolean} [options.parseUrl = true] - If the URL to give to the strategies should be parsed or given as it is.\n * @param {Boolean} [options.cache] - resolve the same URL only once and store the result in memory.\n *\n * @exports taoItems/assets/manager\n * @namespace assetManagerFactory\n * @returns {Object} Asset manager\n */\n var assetManagerFactory = function assetManagerFactory(strategies, data, options) {\n var cache = {},\n assetManager;\n\n strategies = ___default[\"default\"].isArray(strategies) ? strategies : [strategies];\n data = data || {};\n options = ___default[\"default\"].defaults(options || {}, {\n parseUrl: true\n });\n\n /**\n * A brand new asset manager is created by the factory\n */\n assetManager = {\n /**\n * The stack of strategies that would be used to resolve the asset path\n * @type {AssetStrategy[]}\n */\n _strategies: [],\n\n /**\n * Add an asset resolution strategy at the end of the stack.\n * The strategies will be evaluated in the order they've been added.\n * @param {AssetStrategy} strategy - the strategy to add\n * @throws {TypeError} if the strategy isn't defined correctly\n */\n addStrategy: function addStrategy(strategy) {\n checkStrategy(strategy);\n\n this._strategies.push(strategy);\n },\n\n /**\n * Add an asset resolution strategy at the beginning of the stack.\n * The strategies will be evaluated in the order they've been added.\n * @param {AssetStrategy} strategy - the strategy to add\n * @throws {TypeError} if the strategy isn't defined correctly\n */\n prependStrategy: function prependStrategy(strategy) {\n checkStrategy(strategy);\n\n this._strategies.unshift(strategy);\n },\n\n /**\n * Change the strategies\n * @param {AssetStrategy[]} newStrategies - the strategies\n * @throws {TypeError} if the strategy isn't defined correctly\n */\n setStrategies: function setStrategies(newStrategies) {\n var self = this;\n\n this._strategies = [];\n\n //assign the strategies to the assetManager\n ___default[\"default\"].forEach(newStrategies, function(strategy) {\n //if it's an object we add it directly\n if (___default[\"default\"].isPlainObject(strategy)) {\n assetManager.addStrategy(strategy);\n\n //if it's a function, we create the strategy with a generated name\n } else if (___default[\"default\"].isFunction(strategy)) {\n self.addStrategy({\n name: `strategy_${self._strategies.length + 1}`,\n handle: strategy\n });\n }\n });\n },\n\n /**\n * Set context data\n * @param {String|Object} [key] - the key of the data to set or the data values if it's an object\n * @param {*} [value] - the value to set if a key is given\n */\n setData: function setData(key, value) {\n if (___default[\"default\"].isString(key) && typeof value !== 'undefined') {\n data[key] = value;\n } else if (___default[\"default\"].isPlainObject(key)) {\n data = key;\n }\n },\n\n /**\n * Get context data\n * @param {String} [key] - if we want the value of a particular key\n * @returns {Object|*} all the data or the propriety value if key is given\n */\n getData: function getData(key) {\n if (___default[\"default\"].isString(key)) {\n return data[key];\n }\n return data;\n },\n\n /**\n * Resolve the given URL against the strategies\n * @param {String} url - the URL to resolve\n * @returns {String?} the resolved URL or nothing\n */\n resolve: function resolve(url) {\n var resolved;\n var inputUrl;\n\n //if caching try to load the value from the cache\n if (options.cache && typeof cache[url] !== 'undefined') {\n return cache[url];\n }\n\n //parse the URL ?\n inputUrl = options.parseUrl ? urlUtil__default[\"default\"].parse(url) : url;\n\n //call strategies handlers, in their order until once returns something\n ___default[\"default\"].forEach(this._strategies, function(strategy) {\n var result = strategy.handle(inputUrl, data);\n if (result) {\n resolved = result;\n return false;\n }\n });\n\n resolved = resolved || '';\n\n if (options.cache) {\n cache[url] = resolved;\n }\n\n return resolved;\n },\n\n /**\n * Resolve the given URL against the strategy identified by the given name\n * @param {String} name - the strategy name\n * @param {String} url - the URL to resolve\n * @returns {String?} the resolved URL or nothing\n */\n resolveBy: function resolveBy(name, url) {\n var inputUrl;\n var resolved = '';\n var strategy = ___default[\"default\"].find(this._strategies, { name: name });\n if (strategy) {\n //parse the URL ?\n inputUrl = options.parseUrl ? urlUtil__default[\"default\"].parse(url) : url;\n resolved = strategy.handle(inputUrl, data);\n }\n return resolved;\n },\n\n /**\n * When the cache is used, it could be useful to clear the cache\n */\n clearCache: function clearCache() {\n if (options.cache) {\n cache = {};\n }\n }\n };\n\n assetManager.setStrategies(strategies);\n\n return assetManager;\n };\n\n return assetManagerFactory;\n\n}));\n\n","define('taoItems/assets/strategies',['util/url', 'lodash'], (function (urlUtil, _) { 'use strict';\n\n function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }\n\n var urlUtil__default = /*#__PURE__*/_interopDefaultLegacy(urlUtil);\n var ___default = /*#__PURE__*/_interopDefaultLegacy(_);\n\n /*\n * This program is free software; you can redistribute it and/or\n * modify it under the terms of the GNU General Public License\n * as published by the Free Software Foundation; under version 2\n * of the License (non-upgradable).\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\n *\n * Copyright (c) 2015-2019 (original work) Open Assessment Technologies SA;\n *\n */\n\n /**\n * Prepend a base to an URL\n * @param {Object} url - a parsed URL\n * @param {String} base - the base to prepend\n * @param {Boolean} [slashcat = false] - remove dots, double slashes, etc.\n * @returns {String} the URL\n */\n var prependToUrl = function prependToUrl(url, base, slashcat) {\n //is slashcat we manage slash concact\n if (slashcat === true) {\n return `${base.replace(/\\/$/, '')}/${url.directory.replace(/^\\.\\//, '').replace(/^\\//, '')}${encodeURIComponent(url.file.replace(/^\\.\\//, '').replace(/^\\//, ''))}`;\n }\n\n return base + url.directory.replace(/^\\.?\\//, '') + encodeURIComponent(url.file.replace(/^\\.?\\//, ''));\n };\n\n /**\n * Unrelated strategies accessible by there name.\n * Remember to not use the whole object, but each one in an array since the order matters.\n *\n * @exports taoItems/assets/strategies\n */\n var strategies = {\n //the packedUrl will replace the asset with the url given in the assets part\n //the assetManager should add the assets part to data with .setData('assets' itemData.content.assets)\n packedUrl: {\n name: 'packedUrl',\n handle: function handlePackedUrl(url, data) {\n var type;\n if (!___default[\"default\"].isUndefined(url.source) && !___default[\"default\"].isUndefined(data.assets)) {\n type = ___default[\"default\"].findKey(data.assets, url.source);\n if (type && urlUtil__default[\"default\"].isAbsolute(data.assets[type][url.source])) {\n return data.assets[type][url.source];\n }\n }\n }\n },\n //the baseUrl concats the baseUrl in data if the url is relative\n baseUrl: {\n name: 'baseUrl',\n handle: function handleBaseUrl(url, data) {\n if (typeof data.baseUrl === 'string' && urlUtil__default[\"default\"].isRelative(url)) {\n return prependToUrl(url, data.baseUrl, data.slashcat);\n }\n }\n },\n\n //bust the cache for item CSS\n itemCssNoCache: {\n name: 'itemCssNoCache',\n handle: function handleItemCss(url, data) {\n if (typeof data.baseUrl === 'string' && urlUtil__default[\"default\"].isRelative(url) && /\\.css$/.test(url.file)) {\n return urlUtil__default[\"default\"].build(prependToUrl(url, data.baseUrl, data.slashcat), { bust: Date.now() });\n }\n }\n },\n\n //absolute URL are just left intact\n external: {\n name: 'external',\n handle: function handleExternal(url) {\n if (urlUtil__default[\"default\"].isAbsolute(url)) {\n return url.toString();\n }\n }\n },\n\n //the base64 encoded resources are also left intact\n base64: {\n name: 'base64',\n handle: function handleB64(url) {\n if (urlUtil__default[\"default\"].isBase64(url)) {\n return url.toString();\n }\n }\n },\n\n //special tao media protocol\n taomedia: {\n name: 'taomedia',\n handle: function handleTaoMedia(url, data) {\n //either a baseUrl is given or if empty, taomedia resources are managed as relative resources\n var baseUrl = data.baseUrl || './';\n if ((typeof url === 'object' && url.protocol === 'taomedia') || /^taomedia:\\/\\//.test(url.toString())) {\n return baseUrl + url.toString();\n }\n }\n }\n };\n\n return strategies;\n\n}));\n\n","define('taoItems/runner/api/itemRunner',['jquery', 'core/eventifier', 'taoItems/assets/manager'], (function ($, eventifier, assetManagerFactory) { 'use strict';\n\n function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }\n\n var $__default = /*#__PURE__*/_interopDefaultLegacy($);\n var eventifier__default = /*#__PURE__*/_interopDefaultLegacy(eventifier);\n var assetManagerFactory__default = /*#__PURE__*/_interopDefaultLegacy(assetManagerFactory);\n\n /*\n * This program is free software; you can redistribute it and/or\n * modify it under the terms of the GNU General Public License\n * as published by the Free Software Foundation; under version 2\n * of the License (non-upgradable).\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\n *\n * Copyright (c) 2014-2021 (original work) Open Assessment Technlogies SA (under the project TAO-PRODUCT);\n *\n */\n\n /**\n *\n * Builds a brand new {@link itemRunner}.\n *\n * The factory is an internal mechanism to create encapsulated contexts.\n * I suggest you to use directly the name itemRunner when you require this module.\n *\n * @example require(['itemRunner'], function(itemRunner){\n * itemRunner({itemId : 12})\n * .on('statechange', function(state){\n *\n * })\n * .on('ready', function(){\n *\n * })\n * .on('response', function(){\n *\n * })\n * .init()\n * .render($('.item-container'));\n * });\n *\n * @exports itemRunner\n * @namespace itemRunnerFactory\n *\n * @param {String} [providerName] - the name of a provider previously registered see {@link itemRunnerFactory#register}\n * @param {Object} [data] - the data of the item to run\n * @param {Object} [options]\n *\n * @returns {itemRunner}\n */\n const itemRunnerFactory = function itemRunnerFactory(providerName, data = {}, options = {}) {\n //flow structure to manage sync calls in an async context.\n const flow = {\n init: {\n done: false,\n pending: []\n },\n render: {\n done: false,\n pending: []\n }\n };\n\n //optional params based on type\n if (typeof providerName === 'object') {\n data = providerName;\n providerName = void 0;\n }\n\n /*\n * Select the provider\n */\n const providers = itemRunnerFactory.providers;\n\n //check a provider is available\n if (!providers || Object.keys(providers).length === 0) {\n throw new Error('No provider registered');\n }\n\n let provider;\n\n if (typeof providerName === 'string' && providerName.length > 0) {\n provider = providers[providerName];\n } else if (Object.keys(providers).length === 1) {\n //if there is only one provider, then we take this one\n providerName = Object.keys(providers)[0];\n provider = providers[providerName];\n }\n\n //now we should have a provider\n if (!provider) {\n throw new Error('No candidate found for the provider');\n }\n\n //set up a default assetManager using a \"do nothing\" strategy\n const assetManager =\n options.assetManager ||\n assetManagerFactory__default[\"default\"](function defaultStrategy(url) {\n return url.toString();\n });\n\n let suspended = false;\n let closed = false;\n\n /**\n * The itemRunner\n * @typedef {Object} itemRunner\n */\n\n /**\n * @type {itemRunner}\n * @lends itemRunnerFactory\n */\n return eventifier__default[\"default\"]({\n /**\n * Items container\n * @type {HTMLElement}\n */\n container: null,\n\n /**\n * The asset manager used to resolve asset\n * @see taoItems/asset/manager\n * @type {AssetManager}\n */\n assetManager,\n\n /**\n * To give options to the item runner provider\n * @type {Object}\n */\n options,\n\n /**\n * Initialize the runner.\n * @param {Object} [newData] - just in case you want to change item data (it should not occurs in most case)\n * @returns {itemRunner} to chain calls\n *\n * @fires itemRunner#init\n */\n init(newData) {\n /**\n * Call back when init is done\n */\n const initDone = () => {\n //manage pending tasks the first time\n if (flow.init.done === false) {\n flow.init.done = true;\n\n flow.init.pending\n .filter(pendingTask => typeof pendingTask === 'function')\n .forEach(pendingTask => pendingTask());\n\n flow.init.pending = [];\n }\n\n /**\n * the runner has initialized correclty the item\n * @event itemRunner#init\n */\n this.trigger('init');\n };\n\n //merge data\n if (newData) {\n data = Object.assign(data, newData);\n }\n\n if (typeof provider.init === 'function') {\n /**\n * Calls provider's initialization with item data.\n * @callback InitItemProvider\n * @param {Object} data - the item data\n * @param {Function} done - call once the initialization is done\n */\n provider.init.call(this, data, initDone);\n } else {\n initDone();\n }\n\n return this;\n },\n\n /**\n * Configure the assetManager\n * @see taoItems/assets/manager\n * @param {AssetStrategy[]} strategies - the resolving strategies\n * @param {Object} [contextData] - the context data\n * @param {Object} [assetManagerOptions] - the asset manager options\n * @returns {itemRunner} to chain calls\n */\n assets(strategies, contextData, assetManagerOptions) {\n try {\n this.assetManager = assetManagerFactory__default[\"default\"](strategies, contextData, assetManagerOptions);\n } catch (err) {\n this.trigger(\n 'error',\n new Error(`Something was wrong while configuring the asset manager : ${err.message}`)\n );\n }\n\n return this;\n },\n\n /**\n * Initialize the current item.\n *\n * @param {HTMLElement|jQueryElement} elt - the DOM element that is going to contain the rendered item.\n * @param {Object} [newOptions] - to update the runner options\n * @returns {itemRunner} to chain calls\n *\n * @fires itemRunner#ready\n * @fires itemRunner#render\n * @fires itemRunner#error if the elt isn't valid\n *\n * @fires itemRunner#statechange the provider is reponsible to trigger this event\n * @fires itemRunner#responsechange the provider is reponsible to trigger this event\n */\n render(elt, newOptions = {}) {\n /**\n * Call back when render is done\n */\n const renderDone = () => {\n //manage pending tasks the first time\n if (flow.render.done === false) {\n flow.render.done = true;\n\n flow.render.pending\n .filter(pendingTask => typeof pendingTask === 'function')\n .forEach(pendingTask => pendingTask());\n\n flow.render.pending = [];\n }\n\n /**\n * The item is rendered\n * @event itemRunner#render\n */\n this.trigger('render');\n\n /**\n * The item is ready.\n * Alias of {@link itemRunner#render}\n * @event itemRunner#ready\n */\n this.trigger('ready');\n };\n\n options = Object.assign(options || {}, newOptions);\n if (!options.state) {\n options.state = {};\n }\n\n //check elt\n if (!(elt instanceof HTMLElement) && !(elt instanceof $__default[\"default\"])) {\n return this.trigger(\n 'error',\n new Error('A valid HTMLElement (or a jquery element) at least is required to render the item')\n );\n }\n\n //set item state to restore item state after rendering if the provider enables it\n if (options.state) {\n this.setState(options.state, true);\n }\n\n if (flow.init.done === false) {\n flow.init.pending.push(() => this.render(elt, options));\n } else {\n //we keep a reference to the container\n if (elt instanceof $__default[\"default\"]) {\n this.container = elt.get(0);\n } else {\n this.container = elt;\n }\n\n //the state will be applied only when the rendering is made\n\n if (typeof provider.render === 'function') {\n /**\n * Calls the provider's render\n * @callback RendertItemProvider\n * @param {HTMLElement} elt - the element to render inside\n * @param {Function} done - call once the render is done\n * @param {Object} [options] - the array of options that the item runner provider may supports\n * @param {Object} [options.state] - pass initial item state to method render() in case the item runner provider require initial state to render\n */\n provider.render.call(this, this.container, renderDone, options);\n } else {\n renderDone();\n }\n }\n\n return this;\n },\n\n /**\n * Clear the running item.\n * @returns {itemRunner}\n *\n * @fires itemRunner#clear\n */\n clear() {\n /**\n * Call back when clear is done\n */\n const clearDone = () => {\n /**\n * The item is ready.\n * @event itemRunner#clear\n */\n this.trigger('clear');\n };\n\n if (typeof provider.clear === 'function') {\n /**\n * Calls the provider's clear\n * @callback ClearItemProvider\n * @param {HTMLElement} elt - item's container\n * @param {Function} done - call once the initialization is done\n */\n provider.clear.call(this, this.container, clearDone);\n } else {\n clearDone();\n }\n\n return this;\n },\n\n /**\n * Get the current state of the running item.\n *\n * @returns {Object|Null} state\n */\n getState() {\n if (typeof provider.getState === 'function') {\n /**\n * Calls the provider's getState\n * @callback GetStateItemProvider\n * @returns {Object} the state\n */\n return provider.getState.call(this);\n }\n return null;\n },\n\n /**\n * Set the current state of the running item.\n * This should have the effect to restore the item state.\n *\n * @param {Object} state - the new state\n * @param {boolean} [isInitialStateRestore] - state restoring or not\n * @returns {itemRunner}\n *\n * @fires itemRunner#error if the state type doesn't match\n */\n setState(state, isInitialStateRestore = false) {\n if (!state || typeof state !== 'object' || Array.isArray(state)) {\n return this.trigger(\n 'error',\n new Error(`The item's state must be a JavaScript Plain Object: ${typeof state} given`)\n );\n }\n\n //the state will be applied only when the rendering is made\n if (flow.render.done === false) {\n flow.render.pending.push(() => this.setState(state, isInitialStateRestore));\n } else if (typeof provider.setState === 'function') {\n /**\n * Calls the provider's setState\n * @callback SetStateItemProvider\n * @param {Object} state - the state to set\n */\n provider.setState.call(this, state, isInitialStateRestore);\n }\n return this;\n },\n\n /**\n * Get the item data.\n *\n * @returns {Object} the item's data\n */\n getData() {\n return data;\n },\n\n /**\n * Replaces item data in rendered item\n * @param {object} itemData\n * @returns {Promise}\n */\n setData(itemData) {\n data = itemData;\n if (typeof provider.setData === 'function') {\n return provider.setData.call(this, itemData);\n }\n return Promise.resolve();\n },\n\n /**\n * Get the item runner options.\n *\n * @returns {Object} the item rendering options\n */\n getOptions() {\n return this.options;\n },\n\n /**\n * Replaces item runner's options.\n * @param {Object} newOptions - the options to set\n * @returns {Promise}\n */\n setOptions(newOptions = {}) {\n this.options = newOptions;\n if (typeof provider.setOptions === 'function') {\n return provider.setOptions.call(this, this.options);\n }\n return Promise.resolve();\n },\n\n /**\n * Get the responses of the running item.\n *\n * @returns {Object} the item's responses\n */\n getResponses() {\n if (typeof provider.getResponses === 'function') {\n /**\n * Calls the provider's getResponses\n * @callback GetResponsesItemProvider\n * @returns {Object} the responses\n */\n return provider.getResponses.call(this);\n }\n return {};\n },\n\n /**\n * Append the modalFeedbacks into the item and create queue of feedbacks that should be displayed to the user\n *\n * @param {Object|Array} feedbacks - all feedbacks of the item\n * @param {Object|Array} itemSession - determine feedbacks which should be displayed\n * @param {function} done - runs after loading feedbacks into the item\n * # have parameter {Object|Array} renderingQueue with prepared queue of the feedbacks for displaying to the user\n *\n *\n * Example:\n *\n * this.renderFeedbacks({f1: 'feedback1', f2: 'feedback2', f3: 'feedback3'}, ['f2'], function(renderingQueue){\n * renderingQueue; // {'feedback2'}\n * });\n */\n renderFeedbacks(feedbacks, itemSession, done) {\n if (typeof provider.renderFeedbacks === 'function') {\n provider.renderFeedbacks.call(this, feedbacks, itemSession, done);\n }\n },\n\n /**\n * Call the provider's suspend method\n * @returns {Promise}\n */\n suspend() {\n if (!suspended && flow.render.done && typeof provider.suspend === 'function') {\n return provider.suspend.call(this).then(result => {\n suspended = true;\n return result;\n });\n }\n return Promise.resolve();\n },\n\n /**\n * Call the provider's hide method\n * @returns {Promise}\n */\n close() {\n if (!closed && flow.render.done && typeof provider.close === 'function') {\n return provider.close.call(this).then(result => {\n closed = true;\n return result;\n });\n }\n return Promise.resolve();\n },\n\n /**\n * Call the provider's resume method.\n * We can resume a previously suspended or closed item.\n * @returns {Promise}\n */\n resume() {\n if ( (suspended || closed) && flow.render.done && typeof provider.resume === 'function') {\n return provider.resume.call(this).then(result => {\n suspended = false;\n closed = false;\n return result;\n });\n }\n return Promise.resolve();\n },\n\n /**\n * Is the item runner suspended\n * @returns {boolean} true if suspended\n */\n isSuspended() {\n return suspended;\n },\n\n /**\n * Is the item runner closed\n * @returns {boolean} true if closed\n */\n isClosed(){\n return closed;\n },\n });\n };\n\n /**\n * Register an Item Runtime Provider into the item runner.\n * The provider provides the behavior required by the item runner.\n *\n * @param {String} name - the provider name will be used to select the provider while instantiating the runner\n *\n * @param {Object} provider - the Item Runtime Provider as a plain object. The itemRunner forwards encapsulate and delegate calls to the provider.\n * @param {InitItemProvider} provider.init - the provider initializes the item from it's data, for example loading libraries, add some listeners, etc.\n * @param {RenderItemProvider} provider.render - the provider renders the item within the given container element.\n * @param {ClearItemProvider} [provider.clear] - the provider clears the item.\n * @param {GetStateItemProvider} [provider.getState] - the provider get the item's state.\n * @param {SetStateItemProvider} [provider.setState] - the provider restore the item to the given state.\n * @param {GetRespnsesItemProvider} [provider.getResponses] - the provider gives the current responses.\n *\n * @throws TypeError when a wrong provider is given or an empty name.\n */\n itemRunnerFactory.register = function registerProvider(name, provider) {\n //type checking\n if (typeof name !== 'string' || name.length <= 0) {\n throw new TypeError('It is required to give a name to your provider.');\n }\n if (\n typeof provider !== 'object' ||\n (typeof provider.init !== 'function' && typeof provider.render !== 'function')\n ) {\n throw new TypeError('A provider is an object that contains at least an init function or a render function.');\n }\n\n this.providers = this.providers || {};\n this.providers[name] = provider;\n };\n\n return itemRunnerFactory;\n\n}));\n\n","\ndefine(\"taoItems/loader/taoItemsRunner.es5.bundle\", function(){});\n"],"mappings":"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"} \ No newline at end of file