commit
a1af3f90cf
|
@ -1652,13 +1652,6 @@
|
|||
"core.courses.totalcoursesearchresults": "local_moodlemobileapp",
|
||||
"core.currentdevice": "local_moodlemobileapp",
|
||||
"core.custom": "form",
|
||||
"core.reportbuilder.modifiedby": "tool_reportbuilder",
|
||||
"core.reportbuilder.reports": "moodle",
|
||||
"core.reportbuilder.reportsource": "moodle",
|
||||
"core.reportbuilder.timecreated": "moodle",
|
||||
"core.reportbuilder.filtersapplied": "local_moodlemobileapp",
|
||||
"core.reportbuilder.showcolumns": "local_moodlemobileapp",
|
||||
"core.reportbuilder.hidecolumns": "local_moodlemobileapp",
|
||||
"core.datastoredoffline": "local_moodlemobileapp",
|
||||
"core.date": "moodle",
|
||||
"core.datecreated": "repository",
|
||||
|
@ -1811,13 +1804,26 @@
|
|||
"core.group": "moodle",
|
||||
"core.groupsseparate": "moodle",
|
||||
"core.groupsvisible": "moodle",
|
||||
"core.h5p.a11yTitle:label": "h5p",
|
||||
"core.h5p.acceptTerms": "h5p",
|
||||
"core.h5p.accountDetailsLinkText": "h5p",
|
||||
"core.h5p.add": "h5p",
|
||||
"core.h5p.additionallicenseinfo": "h5p",
|
||||
"core.h5p.address": "h5p",
|
||||
"core.h5p.age": "h5p",
|
||||
"core.h5p.ageDescription": "h5p",
|
||||
"core.h5p.altText": "h5p",
|
||||
"core.h5p.author": "h5p",
|
||||
"core.h5p.authorcomments": "h5p",
|
||||
"core.h5p.authorcommentsdescription": "h5p",
|
||||
"core.h5p.authorname": "h5p",
|
||||
"core.h5p.authorrole": "h5p",
|
||||
"core.h5p.back": "h5p",
|
||||
"core.h5p.by": "h5p",
|
||||
"core.h5p.cancelPublishConfirmationDialogCancelButtonText": "h5p",
|
||||
"core.h5p.cancelPublishConfirmationDialogConfirmButtonText": "h5p",
|
||||
"core.h5p.cancelPublishConfirmationDialogDescription": "h5p",
|
||||
"core.h5p.cancelPublishConfirmationDialogTitle": "h5p",
|
||||
"core.h5p.cancellabel": "h5p",
|
||||
"core.h5p.ccattribution": "h5p",
|
||||
"core.h5p.ccattributionnc": "h5p",
|
||||
|
@ -1830,32 +1836,60 @@
|
|||
"core.h5p.changedescription": "h5p",
|
||||
"core.h5p.changelog": "h5p",
|
||||
"core.h5p.changeplaceholder": "h5p",
|
||||
"core.h5p.city": "h5p",
|
||||
"core.h5p.close": "h5p",
|
||||
"core.h5p.confirmdialogbody": "h5p",
|
||||
"core.h5p.confirmdialogheader": "h5p",
|
||||
"core.h5p.confirmlabel": "h5p",
|
||||
"core.h5p.connectionLost": "h5p",
|
||||
"core.h5p.connectionReestablished": "h5p",
|
||||
"core.h5p.contactPerson": "h5p",
|
||||
"core.h5p.contentCopied": "h5p",
|
||||
"core.h5p.contentLicenseTitle": "h5p",
|
||||
"core.h5p.contentchanged": "h5p",
|
||||
"core.h5p.contenttype": "h5p",
|
||||
"core.h5p.copyright": "h5p",
|
||||
"core.h5p.copyrightinfo": "h5p",
|
||||
"core.h5p.copyrightstring": "h5p",
|
||||
"core.h5p.copyrighttitle": "h5p",
|
||||
"core.h5p.country": "h5p",
|
||||
"core.h5p.creativecommons": "h5p",
|
||||
"core.h5p.currentStep": "h5p",
|
||||
"core.h5p.date": "h5p",
|
||||
"core.h5p.description": "h5p",
|
||||
"core.h5p.disablefullscreen": "h5p",
|
||||
"core.h5p.discipline:dropdownButton": "h5p",
|
||||
"core.h5p.discipline:in": "h5p",
|
||||
"core.h5p.discipline:searchPlaceholder": "h5p",
|
||||
"core.h5p.disciplineDescription": "h5p",
|
||||
"core.h5p.disciplineLabel": "h5p",
|
||||
"core.h5p.disciplineLimitReachedMessage": "h5p",
|
||||
"core.h5p.disciplines": "h5p",
|
||||
"core.h5p.download": "h5p",
|
||||
"core.h5p.downloadtitle": "h5p",
|
||||
"core.h5p.editInfoTitle": "h5p",
|
||||
"core.h5p.editingFailed": "h5p",
|
||||
"core.h5p.editor": "h5p",
|
||||
"core.h5p.emailAddress": "h5p",
|
||||
"core.h5p.embed": "h5p",
|
||||
"core.h5p.embedtitle": "h5p",
|
||||
"core.h5p.errorgetemail": "local_moodlemobileapp",
|
||||
"core.h5p.fullscreen": "h5p",
|
||||
"core.h5p.gpl": "h5p",
|
||||
"core.h5p.h5ptitle": "h5p",
|
||||
"core.h5p.height": "h5p",
|
||||
"core.h5p.helpChoosingLicense": "h5p",
|
||||
"core.h5p.hideadvanced": "h5p",
|
||||
"core.h5p.icon": "h5p",
|
||||
"core.h5p.iconDescription": "h5p",
|
||||
"core.h5p.invalidAge": "h5p",
|
||||
"core.h5p.keywordExists": "h5p",
|
||||
"core.h5p.keywords": "h5p",
|
||||
"core.h5p.keywordsDescription": "h5p",
|
||||
"core.h5p.keywordsExits": "h5p",
|
||||
"core.h5p.keywordsPlaceholder": "h5p",
|
||||
"core.h5p.language": "h5p",
|
||||
"core.h5p.level": "h5p",
|
||||
"core.h5p.license": "h5p",
|
||||
"core.h5p.licenseCC010": "h5p",
|
||||
"core.h5p.licenseCC010U": "h5p",
|
||||
|
@ -1864,14 +1898,24 @@
|
|||
"core.h5p.licenseCC25": "h5p",
|
||||
"core.h5p.licenseCC30": "h5p",
|
||||
"core.h5p.licenseCC40": "h5p",
|
||||
"core.h5p.licenseDescription": "h5p",
|
||||
"core.h5p.licenseDetails": "h5p",
|
||||
"core.h5p.licenseDialogDescription": "h5p",
|
||||
"core.h5p.licenseGPL": "h5p",
|
||||
"core.h5p.licenseV1": "h5p",
|
||||
"core.h5p.licenseV2": "h5p",
|
||||
"core.h5p.licenseV3": "h5p",
|
||||
"core.h5p.licenseVersionDescription": "h5p",
|
||||
"core.h5p.licensee": "h5p",
|
||||
"core.h5p.licenseextras": "h5p",
|
||||
"core.h5p.licenseversion": "h5p",
|
||||
"core.h5p.logoUploadText": "h5p",
|
||||
"core.h5p.longDescription": "h5p",
|
||||
"core.h5p.longDescriptionPlaceholder": "h5p",
|
||||
"core.h5p.mainTitle": "h5p",
|
||||
"core.h5p.maxLength": "h5p",
|
||||
"core.h5p.missingdependency": "h5p",
|
||||
"core.h5p.next": "h5p",
|
||||
"core.h5p.nocopyright": "h5p",
|
||||
"core.h5p.offlineDialogBody": "h5p",
|
||||
"core.h5p.offlineDialogHeader": "h5p",
|
||||
|
@ -1879,30 +1923,60 @@
|
|||
"core.h5p.offlineDialogRetryMessage": "h5p",
|
||||
"core.h5p.offlineSuccessfulSubmit": "h5p",
|
||||
"core.h5p.offlinedisabled": "local_moodlemobileapp",
|
||||
"core.h5p.optionalInfo": "h5p",
|
||||
"core.h5p.originator": "h5p",
|
||||
"core.h5p.pd": "h5p",
|
||||
"core.h5p.pddl": "h5p",
|
||||
"core.h5p.pdm": "h5p",
|
||||
"core.h5p.phone": "h5p",
|
||||
"core.h5p.play": "local_moodlemobileapp",
|
||||
"core.h5p.pleaseWait": "h5p",
|
||||
"core.h5p.publisherDescription": "h5p",
|
||||
"core.h5p.publisherDescriptionText": "h5p",
|
||||
"core.h5p.publisherFieldDescription": "h5p",
|
||||
"core.h5p.publisherFieldTitle": "h5p",
|
||||
"core.h5p.remove": "h5p",
|
||||
"core.h5p.removeChip": "h5p",
|
||||
"core.h5p.removeImage": "h5p",
|
||||
"core.h5p.requiredInfo": "h5p",
|
||||
"core.h5p.resizescript": "h5p",
|
||||
"core.h5p.resubmitScores": "h5p",
|
||||
"core.h5p.reuse": "h5p",
|
||||
"core.h5p.reuseContent": "h5p",
|
||||
"core.h5p.reuseDescription": "h5p",
|
||||
"core.h5p.reviewAndSave": "h5p",
|
||||
"core.h5p.reviewAndShare": "h5p",
|
||||
"core.h5p.reviewInfo": "h5p",
|
||||
"core.h5p.reviewMessage": "h5p",
|
||||
"core.h5p.saveChanges": "h5p",
|
||||
"core.h5p.screenshots": "h5p",
|
||||
"core.h5p.screenshotsDescription": "h5p",
|
||||
"core.h5p.share": "h5p",
|
||||
"core.h5p.shareFailed": "h5p",
|
||||
"core.h5p.shareTryAgain": "h5p",
|
||||
"core.h5p.shared": "h5p",
|
||||
"core.h5p.sharingNote": "h5p",
|
||||
"core.h5p.shortDescription": "h5p",
|
||||
"core.h5p.shortDescriptionPlaceholder": "h5p",
|
||||
"core.h5p.showadvanced": "h5p",
|
||||
"core.h5p.showless": "h5p",
|
||||
"core.h5p.showmore": "h5p",
|
||||
"core.h5p.size": "h5p",
|
||||
"core.h5p.someKeywordsExits": "h5p",
|
||||
"core.h5p.source": "h5p",
|
||||
"core.h5p.startingover": "h5p",
|
||||
"core.h5p.subContentWarning": "h5p",
|
||||
"core.h5p.sublevel": "h5p",
|
||||
"core.h5p.submitted": "h5p",
|
||||
"core.h5p.thumbnail": "h5p",
|
||||
"core.h5p.title": "h5p",
|
||||
"core.h5p.undisclosed": "h5p",
|
||||
"core.h5p.width": "h5p",
|
||||
"core.h5p.year": "h5p",
|
||||
"core.h5p.years": "h5p",
|
||||
"core.h5p.yearsfrom": "h5p",
|
||||
"core.h5p.yearsto": "h5p",
|
||||
"core.h5p.zip": "h5p",
|
||||
"core.hasdatatosync": "local_moodlemobileapp",
|
||||
"core.help": "moodle",
|
||||
"core.hide": "moodle",
|
||||
|
@ -2192,6 +2266,13 @@
|
|||
"core.reminders.value": "local_moodlemobileapp",
|
||||
"core.remove": "moodle",
|
||||
"core.removefiles": "local_moodlemobileapp",
|
||||
"core.reportbuilder.filtersapplied": "local_moodlemobileapp",
|
||||
"core.reportbuilder.hidecolumns": "local_moodlemobileapp",
|
||||
"core.reportbuilder.modifiedby": "tool_reportbuilder",
|
||||
"core.reportbuilder.reports": "moodle",
|
||||
"core.reportbuilder.reportsource": "reportbuilder",
|
||||
"core.reportbuilder.showcolumns": "local_moodlemobileapp",
|
||||
"core.reportbuilder.timecreated": "moodle",
|
||||
"core.required": "moodle",
|
||||
"core.requireduserdatamissing": "local_moodlemobileapp",
|
||||
"core.resourcedisplayopen": "moodle",
|
||||
|
|
Binary file not shown.
|
@ -1,62 +0,0 @@
|
|||
<?xml version="1.0" standalone="no"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
|
||||
<svg xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMinYMid meet">
|
||||
<metadata>
|
||||
<json>
|
||||
<![CDATA[
|
||||
{
|
||||
"fontFamily": "h5p-core",
|
||||
"description": "Font generated by IcoMoon.",
|
||||
"majorVersion": 1,
|
||||
"minorVersion": 1,
|
||||
"version": "Version 1.1",
|
||||
"fontId": "h5p-core",
|
||||
"psName": "h5p-core",
|
||||
"subFamily": "Regular",
|
||||
"fullName": "h5p-core"
|
||||
}
|
||||
]]>
|
||||
</json>
|
||||
</metadata>
|
||||
<defs>
|
||||
<font id="h5p-core" horiz-adv-x="1024">
|
||||
<font-face units-per-em="1024" ascent="960" descent="-64" />
|
||||
<missing-glyph horiz-adv-x="1024" />
|
||||
<glyph unicode=" " horiz-adv-x="512" d="" />
|
||||
<glyph unicode="" glyph-name="arrow-down" data-tags="arrow-down" d="M234 565.667h556l-278-278z" />
|
||||
<glyph unicode="" glyph-name="arrow-left" data-tags="arrow-left" d="M381 164.667v524l262-262z" />
|
||||
<glyph unicode="" glyph-name="colapse" data-tags="colapse" d="M512 584.667l256-256-60-60-196 196-196-196-60 60z" />
|
||||
<glyph unicode="" glyph-name="expand" data-tags="expand" d="M708 584.667l60-60-256-256-256 256 60 60 196-196z" />
|
||||
<glyph unicode="" glyph-name="move" data-tags="move" d="M386.662 853.061h71.27v-71.27h-71.27v71.27zM566.067 853.061h71.27v-71.27h-71.27v71.27zM386.662 696.798h71.27v-71.27h-71.27v71.27zM566.067 696.798h71.27v-71.27h-71.27v71.27zM386.662 540.433h71.27v-71.27h-71.27v71.27zM566.067 540.433h71.27v-71.27h-71.27v71.27zM386.662 384.171h71.27v-71.27h-71.27v71.27zM566.067 384.171h71.27v-71.27h-71.27v71.27zM386.662 227.806h71.27v-71.27h-71.27v71.27zM566.067 227.806h71.27v-71.27h-71.27v71.27zM386.662 71.544h71.27v-71.27h-71.27v71.27zM566.067 71.544h71.27v-71.27h-71.27v71.27z" />
|
||||
<glyph unicode="" glyph-name="check-mark" data-tags="check-mark" d="M454.301 395.253l-116.917 116.917-84.781-84.707 201.696-201.697 317.097 317.097-84.781 84.706z" />
|
||||
<glyph unicode="" glyph-name="arrow-up-circle" data-tags="arrow-up-circle" d="M513.344 689.068c-148.616 0-264.722-120.75-260.077-269.367 0-125.395 88.241-232.212 208.991-255.434v213.636h-92.885c-13.933 0-13.933 9.288-9.288 18.577l139.327 171.838c4.645 9.288 13.933 9.288 23.221 4.645 0 0 4.645-4.645 4.645-4.645l139.327-171.838c9.288-9.288 4.645-18.577-9.288-18.577h-92.885v-213.636c143.972 32.51 232.212 171.838 199.703 315.808-23.221 120.75-130.039 204.347-250.789 208.991z" />
|
||||
<glyph unicode="" glyph-name="info-circle" data-tags="info-circle" d="M512 686.933c-144.077 0-260.266-116.191-260.266-260.266s116.191-260.266 260.266-260.266 260.266 116.191 260.266 260.266v0c0 139.429-116.191 255.619-260.266 260.266zM470.171 635.81h88.305v-69.714h-88.305v69.714zM600.305 245.41h-181.257v51.123h51.123v162.666h-51.123v51.123h139.429v-218.438h46.477l-4.648-46.477z" />
|
||||
<glyph unicode="" glyph-name="search" data-tags="search" d="M769.263 223.163l-110.68 110.68c71.943 99.612 49.806 243.494-49.806 315.437s-243.494 44.27-315.437-55.339c-71.943-99.612-49.806-243.494 49.806-315.437 77.475-55.339 182.623-55.339 260.098 0l110.68-110.68c5.533-5.533 11.068-5.533 16.601 0 0 0 0 0 0 0l33.205 33.205c11.068 5.533 11.068 16.601 5.533 22.137 0 0 0 0 0 0zM475.96 300.638c-88.544 0-160.486 71.943-160.486 160.486s71.943 160.486 160.486 160.486 160.486-71.943 160.486-160.486-71.943-160.486-160.486-160.486v0z" />
|
||||
<glyph unicode="" glyph-name="fullscreen" data-tags="fullscreen" d="M357.075 572.983c5.737 5.737 0 5.737-5.737 5.737l-103.284 11.476c-5.737 5.737-11.476 0-11.476-5.737l11.476-109.021c0-5.737 5.737-5.737 5.737-5.737l103.284 103.284zM282.484 509.865l63.118-63.118c5.737-5.737 11.476-5.737 17.213 0l22.953 22.953c5.737 5.737 5.737 11.476 0 17.213l-63.118 57.379-40.166-34.429zM775.945 469.699c5.737-5.737 5.737 0 5.737 5.737l11.476 109.021c0 5.737-5.737 11.476-11.476 11.476l-109.021-11.476c-5.737 0-5.737-5.737-5.737-5.737l109.021-109.021zM712.83 544.294l-63.118-63.118c-5.737-5.737-5.737-11.476 0-17.213l22.953-22.953c5.737-5.737 11.476-5.737 17.213 0l63.118 63.118-40.166 40.166zM678.401 263.134c-5.737-5.737 0-5.737 5.737-5.737l109.021-11.476c5.737 0 11.476 5.737 11.476 11.476l-17.213 103.284c0 5.737-5.737 5.737-5.737 5.737l-103.284-103.284zM747.256 331.989l-63.118 63.118c-5.737 5.737-11.476 5.737-17.213 0l-22.953-22.953c-5.737-5.737-5.737-11.476 0-17.213l63.118-63.118 40.166 40.166zM253.794 366.418c-5.737 5.737-5.737 0-5.737-5.737l-11.476-109.021c0-5.737 5.737-11.476 11.476-11.476l109.021 11.476c5.737 0 5.737 5.737 5.737 5.737l-109.021 109.021zM322.649 291.824l63.118 63.118c5.737 5.737 5.737 11.476 0 17.213l-22.953 22.953c-5.737 5.737-11.476 5.737-17.213 0l-63.118-63.118 40.166-40.166zM150.51 676.267v-499.201h722.979v499.201h-722.979zM833.324 217.232h-636.911v413.13h636.911v-413.13z" />
|
||||
<glyph unicode="" glyph-name="h5p" data-tags="h5p" d="M891.406 574.524c-22.319 16.738-50.216 27.897-89.273 27.897h-139.487v-66.954h-156.225l-11.159-55.795c11.159 5.579 27.897 11.159 39.057 11.159s22.319 0 33.476 0c33.476 0 66.954-11.159 89.273-33.476s33.476-50.216 33.476-83.692c0-22.319-5.579-44.635-16.738-66.954s-27.897-39.057-50.216-50.216c-5.579-5.579-16.738 0-22.319-11.159h117.17v133.908h66.954c44.635 0 78.113 11.159 100.43 27.897 22.319 22.319 33.476 50.216 33.476 83.692 0 39.057-11.159 66.954-27.897 83.692v0zM796.555 462.935c-11.159-5.579-22.319-11.159-44.635-11.159h-33.476v83.692h39.057c22.319 0 33.476-5.579 44.635-11.159 5.579-5.579 11.159-16.738 11.159-27.897 0-16.738-5.579-27.897-16.738-33.476v0zM523.16 423.878c-16.738 0-33.476-11.159-44.635-27.897l-94.851 16.738 44.635 195.281h-94.851v-150.646h-117.17v150.646h-111.589v-362.667h111.589v133.908h117.17v-133.908h139.487c-16.738 11.159-33.476 11.159-44.635 22.319s-22.319 22.319-27.897 33.476c-5.579 11.159-11.159 22.319-16.738 39.057l94.851 16.738c5.579-16.738 22.319-27.897 44.635-27.897 27.897 0 50.216 22.319 50.216 50.216 0 22.319-22.319 44.635-50.216 44.635v0z" />
|
||||
<glyph unicode="" glyph-name="rights-of-use" data-tags="rights-of-use" d="M878.277 414.35c0-5.907 0-5.907 0-5.907-23.631-23.631-47.261-35.448-76.799-41.355-11.813 0-23.631-5.907-35.448-5.907s-17.724 0-29.537 0c0 0-5.907 0-5.907 5.907-64.985 59.079-135.877 118.153-200.863 183.139 0 0-5.907 0-5.907 0-23.631-5.907-47.261-11.813-70.892-17.724s-53.168 0-76.799 11.813c-17.724 11.813-23.631 17.724-29.537 35.448-5.907 5.907 0 23.631 11.813 23.631 41.355 11.813 88.616 29.537 129.971 47.261 11.813 5.907 29.537 5.907 41.355 5.907 5.907 0 11.813-5.907 11.813-5.907 41.355-17.724 82.709-29.537 124.060-47.261 0 0 5.907 0 5.907 0 29.537 5.907 64.985 17.724 94.523 23.631 5.907 0 5.907 0 5.907 0l106.34-212.676zM269.786 420.26c17.724 11.813 35.448 5.907 53.168-11.813 11.813-11.813 11.813-29.537 5.907-47.261 17.724 5.907 35.448-5.907 41.355-17.724 11.813-17.724 5.907-35.448-5.907-47.261 5.907 0 11.813 0 17.724 0 11.813-5.907 23.631-11.813 29.537-29.537s0-29.537-5.907-35.448c-5.907-5.907-11.813-11.813-17.724-17.724s-11.813-11.813-17.724-17.724-35.448-17.724-53.168 0c-29.537 29.537-53.168 64.985-82.709 94.523-17.724 23.631-35.448 41.355-47.261 64.985-5.907 11.813-11.813 17.724-11.813 29.537 0 5.907 0 17.724 5.907 23.631 11.813 11.813 17.724 17.724 29.537 29.537 17.724 17.724 47.261 11.813 64.985-5.907-5.907 0-5.907-5.907-5.907-11.813v0zM417.477 213.491l29.537-29.537c17.724-17.724 47.261-11.813 59.079 5.907l-5.907 5.907c-23.631 23.631-47.261 47.261-70.892 70.892-5.907 5.907-5.907 5.907-5.907 11.813s5.907 5.907 11.813 11.813c5.907 0 11.813 0 11.813-5.907 11.813-11.813 29.537-29.537 47.261-47.261 11.813-11.813 29.537-29.537 47.261-47.261 5.907-11.813 17.724-11.813 29.537-11.813 11.813 5.907 23.631 11.813 29.537 23.631 0 5.907 0 5.907 0 5.907-41.355 41.355-88.616 82.709-129.971 129.971-5.907 5.907-5.907 5.907-5.907 11.813 0 11.813 11.813 11.813 23.631 5.907 0 0 5.907 0 5.907-5.907 41.355-41.355 88.616-88.616 129.971-129.971 5.907-5.907 5.907-5.907 5.907-5.907 17.724 0 35.448 17.724 35.448 35.448 0 5.907 0 5.907 0 5.907-47.261 47.261-100.429 100.429-147.691 147.691-5.907 5.907-5.907 5.907-5.907 11.813s5.907 11.813 5.907 11.813c5.907 0 11.813 0 11.813-5.907 5.907-5.907 5.907-5.907 11.813-11.813 35.448-35.448 70.892-70.892 106.34-106.34 11.813-11.813 23.631-23.631 29.537-29.537 0 0 5.907-5.907 5.907 0 23.631 5.907 35.448 29.537 29.537 53.168h35.448c0 0 0 0 0 0 0-5.907 0-17.724 0-23.631-5.907-29.537-23.631-47.261-53.168-59.079 0 0-5.907 0-5.907-5.907-11.813-29.537-35.448-53.168-64.985-53.168-5.907 0-5.907 0-5.907-5.907-17.724-35.448-59.079-47.261-88.616-35.448-5.907 0-11.813 5.907-11.813 5.907-5.907-5.907-11.813-11.813-23.631-17.724-29.537-11.813-59.079-5.907-76.799 11.813-11.813 11.813-17.724 17.724-29.537 29.537 17.724 23.631 23.631 29.537 29.537 41.355v0 0zM252.062 727.459c29.537-11.813 64.985-23.631 94.523-29.537 35.448-11.813 64.985-23.631 100.429-29.537 0 0 0 0 5.907 0-17.724-5.907-35.448-11.813-47.261-17.724 0 0-5.907 0-5.907 0-47.261 11.813-94.523 23.631-135.877 41.355-5.907 0-5.907 0-5.907 0l-76.799-183.139c0-11.813 5.907-17.724 11.813-23.631s5.907-5.907 5.907-11.813c-5.907-5.907-11.813-17.724-23.631-23.631-17.724 17.724-29.537 35.448-29.537 64.985l88.616 212.676c-5.907-11.813 5.907 5.907 17.724 0v0z" />
|
||||
<glyph unicode="" glyph-name="delete-circle" data-tags="delete-circle" d="M512 686.933c-147.107 0-260.266-118.817-260.266-260.266s118.817-260.266 260.266-260.266 260.266 118.817 260.266 260.266-113.158 260.266-260.266 260.266zM653.449 347.455c5.659-5.659 5.659-16.973 0-28.29l-33.949-33.949c-5.659-5.659-16.973-5.659-28.29 0l-79.212 79.212-79.212-79.212c-5.659-5.659-16.973-5.659-28.29 0l-33.949 33.949c-5.659 5.659-5.659 16.973 0 28.29l84.871 79.212-79.212 79.212c-5.659 5.659-5.659 16.973 0 28.29l33.949 33.949c5.659 5.659 16.973 5.659 28.29 0l73.554-84.871 79.212 79.212c5.659 5.659 16.973 5.659 28.29 0l33.949-33.949c5.659-5.659 5.659-16.973 0-28.29l-79.212-73.554 79.212-79.212z" />
|
||||
<glyph unicode="" glyph-name="window" data-tags="window" d="M186.821 549.319c-5.704-5.704 0-5.704 5.704-5.704l108.394-11.41c5.704 0 11.41 5.704 11.41 11.41l-17.114 102.687c0 5.704-5.704 5.704-5.704 5.704l-102.687-102.687zM255.28 612.074l-62.752 62.752c-5.704 5.704-11.41 5.704-17.114 0l-17.114-22.821c-5.704-5.704-5.704-11.41 0-17.114l62.752-62.752 34.228 39.935zM734.49 646.302c-5.704 5.704-5.704 0-5.704-5.704l-11.41-108.394c0-5.704 5.704-11.41 11.41-11.41l108.394 11.41c5.704 0 5.704 5.704 5.704 5.704l-108.394 108.394zM797.242 572.14l62.752 62.752c5.704 5.704 5.704 11.41 0 17.114l-22.821 22.821c-5.704 5.704-11.41 5.704-17.114 0l-62.752-62.752 39.935-39.935zM831.473 309.717c5.704 5.704 0 5.704-5.704 5.704l-102.687 17.114c-5.704 0-11.41-5.704-11.41-11.41l11.41-108.394c0-5.704 5.704-5.704 5.704-5.704l102.687 102.687zM763.014 246.962l62.752-62.752c5.704-5.704 11.41-5.704 17.114 0l22.821 22.821c5.704 5.704 5.704 11.41 0 17.114l-62.752 62.752-39.935-39.935zM283.804 212.734c5.704-5.704 5.704 0 5.704 5.704l11.41 108.394c0 5.704-5.704 11.41-11.41 11.41l-108.394-11.41c-5.704 0-5.704-5.704-5.704-5.704l108.394-108.394zM221.052 281.193l-62.752-62.752c-5.704-5.704-5.704-11.41 0-17.114l22.821-22.821c5.704-5.704 11.41-5.704 17.114 0l62.752 62.752-39.935 39.935zM335.149 555.026v-239.605h347.998v239.605h-347.998zM637.507 355.355h-262.424v154.032h262.424v-154.032z" />
|
||||
<glyph unicode="" glyph-name="code" data-tags="code" d="M446.523 311.303c6.235-6.235 6.235-12.472 6.235-18.707v-62.359c0-6.235-6.235-6.235-6.235-6.235l-230.728 155.897c-6.235 6.235-6.235 12.472-6.235 18.707v49.886c0 6.235 6.235 12.472 6.235 18.707l230.728 155.897c6.235 6.235 6.235 0 6.235-6.235v-62.359c0-6.235-6.235-12.472-6.235-18.707l-162.134-112.245c-6.235-6.235-6.235-6.235 0-12.472l162.134-99.776zM733.375 417.313c6.235 6.235 6.235 6.235 0 12.472l-155.897 112.245c-6.235 6.235-6.235 12.472-6.235 18.707v62.359c0 6.235 6.235 6.235 6.235 6.235l230.728-155.897c6.235-6.235 6.235-12.472 6.235-18.707v-49.886c0-6.235-6.235-12.472-6.235-18.707l-230.728-155.897c-6.235-6.235-6.235 0-6.235 6.235v62.359c0 6.235 6.235 12.472 6.235 18.707l155.897 99.776z" />
|
||||
<glyph unicode="" glyph-name="download" data-tags="download" d="M353.050 512.027c-11.773 0-17.66-5.887-5.887-17.66l153.059-188.382c5.887-11.773 23.547-11.773 29.433 0l153.059 188.382c5.887 11.773 5.887 17.66-5.887 17.66h-323.782zM570.865 500.253v135.399c0 11.773-11.773 23.547-23.547 23.547h-70.643c-11.773 0-23.547-11.773-23.547-23.547v-141.286h117.739zM647.395 364.854c-5.887 0-17.66-5.887-23.547-11.773l-76.53-94.19c-5.887-5.887-17.66-17.66-23.547-23.547 0 0-5.887-5.887-11.773-5.887s-17.66 11.773-17.66 11.773c-5.887 5.887-17.66 17.66-23.547 23.547l-76.53 94.19c-5.887 5.887-17.66 11.773-23.547 11.773h-123.626c-5.887 0-17.66-5.887-17.66-17.66v-141.286c0-5.887 5.887-17.66 17.66-17.66h529.824c5.887 0 17.66 5.887 17.66 17.66v141.286c0 5.887-5.887 17.66-17.66 17.66l-129.513-5.887zM300.067 253.004c-17.66 0-29.433 11.773-29.433 29.433s11.773 29.433 29.433 29.433c17.66 0 29.433-11.773 29.433-29.433s-11.773-29.433-29.433-29.433v0z" />
|
||||
<glyph unicode="" glyph-name="delete" data-tags="delete" d="M615.111 426.667l134.045 134.045c10.311 10.311 10.311 30.934 0 41.245l-61.866 61.866c-10.311 10.311-30.934 10.311-41.245 0l-134.045-134.045-134.045 134.045c-10.311 10.311-30.934 10.311-41.245 0l-61.866-61.866c-10.311-10.311-10.311-30.934 0-41.245l134.045-134.045-134.045-134.045c-10.311-10.311-10.311-30.934 0-41.245l61.866-61.866c10.311-10.311 30.934-10.311 41.245 0l134.045 134.045 134.045-134.045c10.311-10.311 30.934-10.311 41.245 0l61.866 61.866c10.311 10.311 10.311 30.934 0 41.245l-134.045 134.045z" />
|
||||
<glyph unicode="" glyph-name="edit-image" data-tags="edit-image" d="M300.336 749.664c69.018 23.142 133.325 14.234 189.133-33.28 56.627-48.128 77.619-110.592 63.181-183.808-2.355-12.186 0.307-19.456 8.704-27.853 93.901-93.389 156.774-156.467 250.47-250.163 5.427-5.427 10.957-10.854 15.667-16.896 39.424-50.278 16.794-124.006-44.237-142.029-36.966-10.957-68.403 0-95.334 27.034-95.642 96.051-160.973 160.973-256.614 257.024-6.963 6.963-12.8 8.909-22.63 6.758-117.76-26.317-229.171 60.826-231.731 181.453-0.614 26.419 3.584 52.326 15.974 77.926 34.816-34.816 68.506-67.789 101.274-101.786 10.445-10.752 20.992-15.36 36.045-15.36 14.643 0 25.19 3.891 34.816 14.848 10.752 12.39 23.040 23.347 34.611 35.021 14.336 14.438 14.336 46.080-0.205 60.518-35.123 35.226-70.349 70.349-106.598 106.496 3.891 2.253 5.632 3.482 7.475 4.096zM703.485 191.584c-0.41-24.269 20.685-45.466 44.851-45.158 23.757 0.41 44.032 20.992 43.93 44.544-0.102 23.757-20.275 44.032-44.237 44.134-23.859 0.307-44.237-19.661-44.544-43.52z" />
|
||||
<glyph unicode="" glyph-name="hourglass" data-tags="hourglass" d="M733.414 117.419c-147.763 0-295.526 0-443.29 0 0 2.048 0.102 4.096 0 6.144-0.307 13.824-1.024 32.666-0.922 46.49 0.41 39.731 6.861 78.131 19.046 115.2 17.203 52.224 43.725 96.256 81.306 130.355 4.506 4.096 9.216 7.885 13.722 11.776-0.205 0.717-0.307 1.126-0.41 1.229-1.331 1.229-2.765 2.355-4.198 3.584-28.058 22.63-50.688 51.405-68.403 85.606-30.618 59.085-43.52 123.597-41.165 192.614 0.205 7.168 0.614 18.33 0.922 25.498 147.763 0 295.526 0 443.29 0 0.205-1.331 0.512-2.662 0.614-3.994 2.662-36.966 1.229-77.722-5.939-113.869-14.336-72.909-44.544-133.837-95.027-179.405-4.096-3.686-8.294-7.066-12.39-10.547 0.205-0.717 0.307-1.126 0.512-1.331 0.819-0.717 1.638-1.434 2.458-2.15 42.189-33.894 71.68-79.872 90.931-135.782 11.776-34.202 18.637-69.837 20.070-106.701 0.819-19.763-0.614-44.851-1.126-64.717zM687.437 160.632c0 6.554 0.205 12.493 0 18.432-1.331 37.581-7.27 74.138-19.866 108.749-17.92 49.562-45.568 88.269-88.678 108.646-2.458 1.126-2.97 3.072-2.97 5.837 0.102 16.691 0.102 33.485 0 50.176 0 3.994 1.331 5.427 4.096 6.963 9.114 5.325 18.432 10.24 26.829 16.896 29.696 23.552 49.152 56.934 62.362 95.744 10.342 30.413 15.77 62.259 17.818 94.822 0.614 9.114 0.102 18.227 0.102 27.546-116.634 0-233.574 0-351.027 0 0.307-8.704 0.614-16.998 1.024-25.395 1.946-37.274 8.499-73.216 21.504-107.213 18.125-47.104 45.261-83.558 86.528-103.117 2.253-1.024 2.867-2.662 2.867-5.427-0.102-17.203-0.102-34.509 0-51.712 0-3.072-1.024-4.506-3.277-5.632-5.632-2.867-11.366-5.734-16.691-9.216-34.304-22.733-56.832-57.754-71.987-100.147-12.493-35.123-18.125-71.987-19.661-109.875-0.205-5.325 0-10.752 0-16.282 117.35 0.205 234.189 0.205 351.027 0.205zM410.342 579.96c68.096 0 135.373 0 203.674 0-3.789-6.554-7.168-12.595-10.752-18.227-10.957-16.998-24.269-30.618-39.731-41.472s-27.75-25.293-32.768-46.592c-1.638-6.963-2.765-14.336-2.867-21.606-0.307-17.203-0.205-34.406 0.307-51.712 0.717-28.058 12.493-48.947 32.154-62.566 43.008-30.003 65.843-75.878 75.776-132.506 0.307-1.638 0.307-3.379 0.614-5.53-83.149 0-166.093 0-249.242 0 2.662 20.685 7.885 40.346 15.462 59.085 13.312 32.973 32.768 59.187 59.494 77.722 16.589 11.469 28.365 27.955 32.358 50.995 0.819 4.813 1.331 9.83 1.434 14.746 0.102 18.637 0.614 37.274-0.205 55.808-1.126 24.678-11.981 43.213-28.57 57.139-9.216 7.782-18.944 14.746-27.648 23.142-11.981 11.162-21.197 25.395-29.491 41.574z" />
|
||||
<glyph unicode="" glyph-name="plus-icon" data-tags="plus-icon" d="M767.787 391.893c0-19.323-15.664-34.987-34.987-34.987h-151.040v-151.467c0-19.323-15.664-34.987-34.987-34.987h-69.547c-19.323 0-34.987 15.664-34.987 34.987v151.467h-151.467c-19.323 0-34.987 15.664-34.987 34.987v69.547c0 19.323 15.664 34.987 34.987 34.987h151.467v151.467c0 19.323 15.664 34.987 34.987 34.987h69.547c19.323 0 34.987-15.664 34.987-34.987v-151.467h151.467c19.323 0 34.987-15.664 34.987-34.987z" />
|
||||
<glyph unicode="" glyph-name="video-upload-icon" data-tags="video-upload-icon" d="M395.848 387.201v-128c0-21.333 21.333-42.667 42.667-42.667h128c21.333 0 42.667 17.067 42.667 42.667v128c0 21.333-17.067 42.667-42.667 42.667h-128c-21.333 0-42.667-17.067-42.667-42.667zM796.915 557.867l-102.4 106.667c-12.8 12.8-38.4 21.333-55.467 21.333h-140.8l21.333-42.667h89.6v-136.533c0-17.067 12.8-29.867 29.867-29.867h140.8v-341.333h-426.667v328.533h-42.667v-341.333c0-17.067 12.8-29.867 29.867-29.867h448c17.067 0 29.867 12.8 29.867 29.867v384c4.267 17.067-8.533 38.4-21.333 51.2zM651.848 515.201v123.733c4.267 0 12.8-4.267 12.8-8.533l102.4-102.4c4.267-4.267 4.267-8.533 8.533-12.8h-123.733zM737.181 225.067v196.267c0 4.267-4.267 8.533-8.533 8.533s-8.533 0-12.8-4.267l-89.6-89.6v-29.867l89.6-89.6c8.533-4.267 8.533 0 12.8 0 4.267 4.267 8.533 4.267 8.533 8.533zM361.715 532.267v136.533l59.733-59.733c8.533-8.533 17.067-4.267 25.6 0l12.8 12.8c8.533 8.533 8.533 17.067 0 25.6l-115.2 106.667c-8.533 8.533-17.067 8.533-21.333 0l-115.2-110.933c-4.267-8.533-4.267-17.067 0-25.6l12.8-12.8c8.533-8.533 17.067-8.533 21.333 0l59.733 59.733v-136.533c0-8.533 8.533-17.067 17.067-17.067h25.6c0 0 17.067 8.533 17.067 21.333z" />
|
||||
<glyph unicode="" glyph-name="play-icon" data-tags="play-icon" d="M375.444 661.357c81.067 46.933 187.733 46.933 273.067 0 42.667-25.6 72.533-55.467 98.133-98.133 72.533-128 29.867-294.4-98.133-371.2-128-72.533-294.4-29.867-371.2 98.133-46.933 81.067-46.933 187.733 0 273.067 21.333 42.667 55.467 72.533 98.133 98.133zM644.244 409.623c12.8 8.533 12.8 29.867 0 38.4l-192 110.933c-8.533 4.267-12.8 4.267-21.333 0s-12.8-12.8-12.8-21.333v-226.133c0-8.533 4.267-17.067 12.8-21.333s17.067-4.267 21.333 0l192 119.467z" />
|
||||
<glyph unicode="" glyph-name="copy" data-tags="copy" d="M722.133 603.867h-247.733c-65.867 0-119.2-53.333-119.2-119.2v-288.533c0-65.867 53.333-119.2 119.2-119.2h247.867c65.867 0 119.2 53.333 119.2 119.2v288.533c-0.267 65.867-53.467 119.2-119.333 119.2zM778.533 199.2c0-31.333-25.067-56.4-56.4-56.4h-247.867c-31.333 0-56.4 25.067-56.4 56.4v285.467c0 31.333 25.067 56.4 56.4 56.4h247.733c31.333 0 56.4-25.067 56.4-56.4v-285.467zM245.2 368.667v288.533c0 31.333 25.067 56.4 56.4 56.4h247.733c31.333 0 56.4-25.067 56.4-56.4v-18.8h62.667v18.8c0 65.867-53.333 119.2-119.2 119.2h-247.467c-65.867 0-119.2-53.333-119.2-119.2v-288.533c0-65.867 53.333-119.2 119.2-119.2h18.8v62.667h-18.8c-31.467-3.067-56.533 22-56.533 56.533zM681.2 403.2h-163.067c-18.8 0-31.333 12.533-31.333 31.333s12.533 31.333 31.333 31.333h163.067c18.8 0 31.333-12.533 31.333-31.333s-15.6-31.333-31.333-31.333zM681.2 309.067h-163.067c-18.8 0-31.333 12.533-31.333 31.333s12.533 31.333 31.333 31.333h163.067c18.8 0 31.333-12.533 31.333-31.333s-15.6-31.333-31.333-31.333zM681.2 214.934h-163.067c-18.8 0-31.333 12.533-31.333 31.333s12.533 31.333 31.333 31.333h163.067c18.8 0 31.333-12.533 31.333-31.333s-15.6-31.333-31.333-31.333z" />
|
||||
<glyph unicode="" glyph-name="examples-icon" data-tags="examples-icon" d="M213.333 275.201c89.6 38.4 183.467 68.267 273.067 17.067v281.6c-68.267 46.933-157.867 55.467-234.667 12.8l-38.4-311.467zM810.667 275.201l-42.667 315.733c-72.533 38.4-166.4 34.133-234.667-17.067v-285.867c93.867 51.2 187.733 21.333 277.333-12.8zM832 629.334c-51.2 29.867-110.933 46.933-170.667 55.467-51.2 0-102.4-8.533-149.333-29.867-46.933 21.333-98.133 29.867-149.333 29.867-59.733-4.267-119.467-25.6-170.667-55.467l-64-452.267c0 0 29.867-17.067 110.933 21.333 46.933 25.6 102.4 34.133 157.867 25.6 42.667-4.267 85.333-21.333 115.2-55.467v0c29.867 34.133 72.533 51.2 115.2 55.467 55.467 4.267 106.667-4.267 157.867-29.867 81.067-38.4 110.933-21.333 110.933-21.333l-64 456.533zM793.6 224.001c-42.667 21.333-89.6 34.133-140.8 34.133-8.533 0-21.333 0-29.867 0-42.667-4.267-81.067-17.067-115.2-42.667-34.133 25.6-72.533 38.4-115.2 42.667-12.8 0-21.333 0-34.133 0-46.933 0-93.867-8.533-136.533-29.867-21.333-12.8-46.933-21.333-72.533-25.6l64 413.867c46.933 25.6 98.133 38.4 149.333 42.667 46.933 0 93.867-8.533 136.533-25.6l12.8-8.533 12.8 4.267c42.667 17.067 89.6 25.6 136.533 25.6 51.2-4.267 102.4-17.067 149.333-42.667l59.733-418.133c-29.867 8.533-51.2 17.067-76.8 29.867z" />
|
||||
<glyph unicode="" glyph-name="tutorials-icon" data-tags="tutorials-icon" d="M887.468 537.598l-375.467-110.933h-4.267l-217.6 68.267c-21.333-25.6-34.133-59.733-34.133-98.133 21.333-12.8 25.6-38.4 12.8-59.733-4.267-4.267-8.533-8.533-12.8-12.8l17.067-145.067c0-4.267 0-4.267-4.267-8.533 0 0 0 0-4.267 0h-64c-4.267 0-4.267 0-8.533 4.267 0 4.267-4.267 4.267-4.267 8.533l17.067 145.067c-12.8 8.533-17.067 21.333-17.067 34.133 0 17.067 8.533 29.867 21.333 38.4 0 38.4 12.8 76.8 34.133 110.933l-106.667 29.867c-8.533 4.267-8.533 8.533-8.533 17.067 0 4.267 4.267 4.267 4.267 4.267l375.467 119.467h4.267l375.467-123.733c4.267 0 8.533-4.267 8.533-8.533s-4.267-8.533-8.533-12.8zM725.334 341.332c4.267-46.933-93.867-85.333-213.333-85.333s-213.333 38.4-213.333 85.333l4.267 106.667 192-64c4.267 0 12.8 0 17.067 0s12.8 0 17.067 4.267l192 59.733 4.267-106.667z" />
|
||||
<glyph unicode="" glyph-name="info-important-description" data-tags="info-important-description" d="M512 768.017c-188.5 0-341.3-152.8-341.3-341.3s152.8-341.4 341.3-341.4 341.3 152.8 341.3 341.3-152.8 341.4-341.3 341.4v0zM512 113.917c-172.7 0-312.7 140-312.7 312.7s140 312.7 312.7 312.7c172.7 0 312.7-140 312.7-312.7-0.2-172.6-140.1-312.5-312.7-312.7v0zM512 676.217c-137.9 0-249.6-111.8-249.6-249.6s111.7-249.6 249.6-249.6 249.6 111.8 249.6 249.6-111.8 249.6-249.6 249.6v0z" />
|
||||
<glyph unicode="" glyph-name="icon-info" data-tags="icon-info" d="M468.875 565.974h87.467c0.028 0 0.062 0 0.095 0 6.056 0 11.499 2.629 15.248 6.808 3.979 4.15 6.419 9.769 6.419 15.957 0 0.097-0.001 0.194-0.002 0.29v70.385c0.001 0.082 0.002 0.179 0.002 0.276 0 6.188-2.44 11.806-6.409 15.946-3.759 4.19-9.201 6.819-15.257 6.819-0.033 0-0.067 0-0.1 0h-87.462c-0.028 0-0.062 0-0.095 0-6.056 0-11.499-2.629-15.248-6.808-3.979-4.15-6.419-9.769-6.419-15.957 0-0.097 0.001-0.194 0.002-0.29v-69.959c-0.001-0.082-0.002-0.179-0.002-0.276 0-6.188 2.44-11.806 6.409-15.946 3.715-4.373 9.2-7.159 15.338-7.245zM599.008 263.041h-22.187v209.92c0.001 0.082 0.002 0.179 0.002 0.276 0 6.188-2.44 11.806-6.409 15.946-3.759 4.19-9.201 6.819-15.257 6.819-0.033 0-0.067 0-0.1 0h-130.128c-0.028 0-0.062 0-0.095 0-6.056 0-11.499-2.629-15.248-6.808-3.979-4.15-6.419-9.769-6.419-15.957 0-0.097 0.001-0.194 0.002-0.29v-46.492c-0.001-0.082-0.002-0.179-0.002-0.276 0-6.188 2.44-11.806 6.409-15.946 3.759-4.19 9.201-6.819 15.257-6.819 0.033 0 0.067 0 0.1 0h22.182v-139.947h-22.187c-0.028 0-0.062 0-0.095 0-6.056 0-11.499-2.629-15.248-6.808-3.979-4.15-6.419-9.769-6.419-15.957 0-0.097 0.001-0.194 0.002-0.29v-46.492c-0.001-0.082-0.002-0.179-0.002-0.276 0-6.188 2.44-11.806 6.409-15.946 3.759-4.19 9.201-6.819 15.257-6.819 0.033 0 0.067 0 0.1 0h174.075c0.028 0 0.062 0 0.095 0 6.056 0 11.499 2.629 15.248 6.808 3.979 4.15 6.419 9.769 6.419 15.957 0 0.097-0.001 0.194-0.002 0.29v46.065c0.043 0.527 0.067 1.141 0.067 1.761 0 5.302-1.791 10.185-4.8 14.079-3.742 4.424-9.36 7.247-15.636 7.247-0.489 0-0.975-0.017-1.456-0.051z" />
|
||||
<glyph unicode="" glyph-name="paste" data-tags="paste" d="M394.402 745.067h-75.333c-65.867 0-119.2-53.333-119.2-119.2v-288.533c0-56.4 37.6-100.4 87.867-116v69.067c-15.733 9.467-25.067 25.067-25.067 47.067v288.4c0 31.333 25.067 56.4 56.4 56.4h131.733c0 0 0 0 3.2 3.2v0c0 31.333-28.267 59.6-59.6 59.6zM704.802 635.2c0 0-28.267 0-40.8 0-12.533 34.533-43.867 59.6-84.667 59.6s-69.067-25.067-81.6-59.6c-12.533 0-40.8 0-40.8 0-65.867 0-119.2-53.333-119.2-119.2v-288.533c0-65.867 53.333-119.2 119.2-119.2h247.867c65.867 0 119.2 53.333 119.2 119.2v285.467c3.2 65.867-53.2 122.267-119.2 122.267zM582.535 647.867c22 0 40.8-18.8 40.8-40.8s-18.8-40.8-40.8-40.8c-22 0-40.8 18.8-40.8 40.8s15.733 40.8 40.8 40.8zM764.402 224.4c0-31.333-25.067-56.4-56.4-56.4h-250.933c-31.333 0-56.4 25.067-56.4 56.4v288.533c0 18.8 9.467 37.6 25.067 47.067v0c0-43.867 34.533-78.4 78.4-78.4h160c43.867 0 78.4 34.533 78.4 78.4v0c12.533-9.467 22-28.267 22-47.067v-288.533z" />
|
||||
<glyph unicode="" glyph-name="reuse" data-tags="reuse" d="M734.974 624.751c-54.605 61.619-134.123 100.573-222.977 100.573-164.936 0-298.661-133.724-298.661-298.661h74.667c0 123.721 100.272 223.993 223.993 223.993 68.214 0 128.747-30.96 169.766-79.119l-70.213-70.213h199.109v199.109l-75.689-75.689zM511.999 202.671c-68.214 0-128.747 30.96-169.766 79.119l70.213 70.213h-199.109v-199.109l75.689 75.689c54.605-61.619 134.123-100.573 222.977-100.573 164.936 0 298.661 133.724 298.661 298.661h-74.667c0-123.721-100.272-223.993-223.993-223.993z" />
|
||||
<glyph unicode="" glyph-name="info-outlined" data-tags="info-outlined" d="M467.199 181.336h89.599v268.8h-89.599v-268.8zM512 853.335c-247.296 0-448.001-200.705-448.001-448.001s200.705-448.001 448.001-448.001 448.001 200.705 448.001 448.001-200.705 448.001-448.001 448.001zM512 46.936c-197.568 0-358.398 160.83-358.398 358.398s160.83 358.398 358.398 358.398 358.398-160.83 358.398-358.398-160.83-358.398-358.398-358.398zM467.199 539.734h89.599v89.599h-89.599v-89.599z" />
|
||||
<glyph unicode="" glyph-name="spinner" data-tags="spinner" d="M600 808.001c0-48.602-39.398-88-88-88s-88 39.398-88 88 39.398 88 88 88 88-39.398 88-88zM512 133.333c-48.602 0-88-39.398-88-88s39.398-88 88-88 88 39.398 88 88-39.398 88-88 88zM893.334 514.667c-48.602 0-88-39.398-88-88s39.398-88 88-88 88 39.398 88 88-39.398 88-88 88zM218.666 426.667c0 48.602-39.398 88-88 88s-88-39.398-88-88 39.398-88 88-88 88 39.398 88 88zM242.357 245.024c-48.602 0-88-39.398-88-88s39.398-88 88-88 88 39.398 88 88c0 48.6-39.4 88-88 88zM781.643 245.024c-48.602 0-88-39.398-88-88s39.398-88 88-88 88 39.398 88 88c0 48.6-39.398 88-88 88zM242.357 784.31c-48.602 0-88-39.398-88-88s39.398-88 88-88 88 39.398 88 88-39.4 88-88 88z" />
|
||||
<glyph unicode="" glyph-name="copy-enabled" data-tags="copy-enabled" d="M614.525 809.292h-317.672c-74.968 0-135.9-60.931-135.9-135.9v-370.388c0-43.817 20.88-82.842 53.231-107.83v70.346c-4.45 11.297-7.016 23.962-7.016 37.484v370.388c0 49.292 40.224 89.516 89.516 89.516h318.014c15.232 0 29.611-3.766 42.107-10.613h68.294c-24.646 34.402-65.039 56.997-110.57 56.997zM674.431 267.403h-209.327c-14.721 0-23.105-8.388-23.105-23.105s8.388-23.105 23.105-23.105h209.327c11.124 0 23.105 8.899 23.105 23.105 0 14.721-8.388 23.105-23.105 23.105zM674.431 388.244h-209.327c-14.721 0-23.105-8.388-23.105-23.105s8.388-23.105 23.105-23.105h209.327c11.124 0 23.105 8.899 23.105 23.105 0 14.721-8.388 23.105-23.105 23.105zM726.978 686.23h-318.014c-74.968 0-135.9-60.931-135.9-135.9v-370.388c0-74.968 60.931-135.9 135.9-135.9v0h318.183c74.968 0 135.9 60.931 135.9 135.9v370.388c-0.342 74.968-61.273 135.9-136.073 135.9zM816.494 183.878c0-49.292-40.224-89.516-89.516-89.516h-318.183c-49.292 0-89.516 40.224-89.516 89.516v366.449c0 49.292 40.224 89.516 89.516 89.516h318.014c49.292 0 89.516-40.224 89.516-89.516v-349.334h0.173v-17.115zM674.431 509.081h-209.327c-14.721 0-23.105-8.388-23.105-23.105s8.388-23.105 23.105-23.105h209.327c11.124 0 23.105 8.899 23.105 23.105 0 14.721-8.388 23.105-23.105 23.105z" />
|
||||
<glyph unicode="" glyph-name="copy-disabled" data-tags="copy-disabled" d="M614.525 809.292h-317.672c-74.968 0-135.9-60.931-135.9-135.9v-370.388c0-43.817 20.88-82.842 53.231-107.83v70.346c-4.45 11.297-7.016 23.962-7.016 37.484v370.388c0 49.292 40.224 89.516 89.516 89.516h318.014c15.232 0 29.611-3.766 42.107-10.613h68.294c-24.646 34.402-65.039 56.997-110.57 56.997zM726.978 686.23h-318.014c-74.968 0-135.9-60.931-135.9-135.9v-370.388c0-74.968 60.931-135.9 135.9-135.9v0h318.183c74.968 0 135.9 60.931 135.9 135.9v370.388c-0.342 74.968-61.273 135.9-136.073 135.9zM816.494 183.878c0-49.292-40.224-89.516-89.516-89.516h-318.183c-49.292 0-89.516 40.224-89.516 89.516v366.449c0 49.292 40.224 89.516 89.516 89.516h318.014c49.292 0 89.516-40.224 89.516-89.516v-349.334h0.173v-17.115zM709.521 468.857l-27.728 27.555-109.544-109.544-109.544 109.544-27.555-27.555 109.544-109.544-109.544-109.544 27.555-27.555 109.544 109.544 109.544-109.544 27.555 27.555-109.544 109.544 109.713 109.544z" />
|
||||
<glyph unicode="" glyph-name="paste-enabled" data-tags="paste-enabled" d="M410.237 57.275c-75.402 0-136.793 61.394-136.793 136.793v373.025c0 75.402 61.394 136.793 136.793 136.793h64.85l4.152 11.413c15.219 41.678 47.732 65.715 89.237 65.715 42.716 0 78.512-25.075 93.212-65.715l4.152-11.413h64.85c37.007 0 73.499-15.911 99.786-43.581 25.594-26.805 38.737-61.048 37.007-96.326v-369.738c0-75.402-61.394-136.793-136.793-136.793l-320.453-0.173zM360.947 638.689c-24.729-15.046-40.64-44.619-40.64-75.575v-373.025c0-49.804 40.467-90.271 90.271-90.271h324.432c43.754 0 80.415 31.476 88.545 72.981h1.73l0.173 17.295v373.025c0 28.708-14.181 58.627-35.277 74.71l-27.67 20.923v-17.468c0-47.213-36.834-84.048-84.048-84.048h-207.351c-47.213 0-84.048 36.834-84.048 84.048v13.489l-26.113-16.084zM572.451 733.631c-27.843 0-48.766-20.923-48.766-48.766 0-26.459 22.307-48.766 48.766-48.766s48.766 22.307 48.766 48.766c0.173 26.286-22.134 48.766-48.766 48.766zM422.169 764.069c7.78 8.818 16.603 16.776 24.383 25.594 1.903 2.076 3.806 4.325 5.709 6.401h-158.585c-75.748 0-137.312-61.567-137.312-137.312v-374.236c0-44.965 21.788-84.913 55.167-109.988v68.829c-5.536 12.278-8.472 26.113-8.472 41.159v374.236c0 49.804 40.64 90.444 90.444 90.444h116.561c3.633 5.19 7.78 10.202 12.105 14.873z" />
|
||||
<glyph unicode="" glyph-name="paste-disabled" data-tags="paste-disabled" d="M410.237 57.275c-75.402 0-136.793 61.394-136.793 136.793v373.025c0 75.402 61.394 136.793 136.793 136.793h64.85l4.152 11.413c15.219 41.678 47.732 65.715 89.237 65.715 42.716 0 78.512-25.075 93.212-65.715l4.152-11.413h64.85c37.007 0 73.499-15.911 99.786-43.581 25.594-26.805 38.737-61.048 37.007-96.326v-369.738c0-75.402-61.394-136.793-136.793-136.793l-320.453-0.173zM360.947 638.689c-24.729-15.046-40.64-44.619-40.64-75.575v-373.025c0-49.804 40.467-90.271 90.271-90.271h324.432c43.754 0 80.415 31.476 88.545 72.981h1.73l0.173 17.295v373.025c0 28.708-14.181 58.627-35.277 74.71l-27.67 20.923v-17.468c0-47.213-36.834-84.048-84.048-84.048h-207.351c-47.213 0-84.048 36.834-84.048 84.048v13.489l-26.113-16.084zM572.451 733.631c-27.843 0-48.766-20.923-48.766-48.766 0-26.459 22.307-48.766 48.766-48.766s48.766 22.307 48.766 48.766c0.173 26.286-22.134 48.766-48.766 48.766zM422.169 764.069c7.78 8.818 16.603 16.776 24.383 25.594 1.903 2.076 3.806 4.325 5.709 6.401h-158.585c-75.748 0-137.312-61.567-137.312-137.312v-374.236c0-44.965 21.788-84.913 55.167-109.988v68.829c-5.536 12.278-8.472 26.113-8.472 41.159v374.236c0 49.804 40.64 90.444 90.444 90.444h116.561c3.633 5.19 7.78 10.202 12.105 14.873zM718.585 463.848l-28.016 27.843-110.68-110.68-110.68 110.68-27.843-27.843 110.68-110.68-110.68-110.68 27.843-27.843 110.68 110.68 110.68-110.68 27.843 27.843-110.68 110.68 110.853 110.68z" />
|
||||
<glyph unicode="" glyph-name="button-disabled" data-tags="button-disabled" d="M853.333 699.246l-68.754 68.754-272.579-272.579-272.579 272.579-68.754-68.754 272.579-272.579-272.579-272.579 68.754-68.754 272.579 272.579 272.579-272.579 68.754 68.754-272.579 272.579z" />
|
||||
</font></defs></svg>
|
Before Width: | Height: | Size: 32 KiB |
Binary file not shown.
Binary file not shown.
Binary file not shown.
File diff suppressed because one or more lines are too long
After Width: | Height: | Size: 97 KiB |
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -0,0 +1,38 @@
|
|||
<?xml version="1.0" standalone="no"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
|
||||
<svg xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMinYMid meet">
|
||||
<metadata>
|
||||
<json>
|
||||
<![CDATA[
|
||||
{
|
||||
"fontFamily": "h5p-hub",
|
||||
"description": "Font generated by IcoMoon.",
|
||||
"majorVersion": 1,
|
||||
"minorVersion": 3,
|
||||
"version": "Version 1.3",
|
||||
"fontId": "h5p-hub",
|
||||
"psName": "h5p-hub",
|
||||
"subFamily": "Regular",
|
||||
"fullName": "h5p-hub"
|
||||
}
|
||||
]]>
|
||||
</json>
|
||||
</metadata>
|
||||
<defs>
|
||||
<font id="h5p-hub" horiz-adv-x="1024">
|
||||
<font-face units-per-em="1024" ascent="960" descent="-64" />
|
||||
<missing-glyph horiz-adv-x="1024" />
|
||||
<glyph unicode=" " horiz-adv-x="512" d="" />
|
||||
<glyph unicode="" glyph-name="dropdown" data-tags="dropdown" d="M1004.654 717.002c-11.526 11.526-27.853 19.209-45.142 19.209h-895.161c-35.538 0-63.391-27.853-64.352-63.391 0-17.289 6.724-33.616 19.209-46.103l447.582-447.582c24.013-24.972 63.391-25.933 88.363-1.92 0.961 0.961 0.961 0.961 1.92 1.92l447.582 447.582c24.972 24.013 25.933 63.391 1.92 88.363-0.961 0.961-0.961 0.961-1.92 1.92z" />
|
||||
<glyph unicode="" glyph-name="info" data-tags="info" d="M745.14 76.307c-0.699 25.827-20.941 46.069-46.768 46.768h-46.069v418.813c-1.395 25.827-21.639 46.069-46.768 46.069h-279.209c-25.827 0-46.768-20.941-47.465-46.768v-92.837c0.699-25.827 20.941-46.069 46.768-46.768h46.768v-279.209h-46.069c-25.827-0.699-46.069-20.941-46.768-46.768v-92.837c0.699-25.827 20.941-46.069 46.768-46.768h372.045c25.827 0.699 46.069 20.941 46.768 46.768v93.534zM638.343 946.041c-8.376 9.075-20.242 13.96-32.806 13.96h-185.673c-25.827-0.699-46.069-20.941-46.768-46.768v-139.604c0.699-25.827 20.941-46.069 46.768-46.768h186.372c25.129 1.395 45.371 21.639 46.069 46.768v139.604c0 12.564-5.584 24.43-13.96 32.806z" />
|
||||
<glyph unicode="" glyph-name="thick-arrow" data-tags="thick-arrow" d="M997.162 446.653c0.634 22.167-8.234 44.336-24.701 59.537l-428.789 428.789c-32.302 32.936-85.505 33.568-118.44 0.634 0 0-0.634-0.634-0.634-0.634l-49.403-49.403c-32.936-32.302-32.936-84.871-1.266-117.806 0.634-0.634 0.634-0.634 1.266-1.266l192.544-193.81h-463.625c-21.535 0.634-41.802-8.234-55.737-24.701-14.567-16.467-22.167-38.002-21.535-59.537v-84.238c-0.634-21.535 6.967-43.068 21.535-59.537 13.935-16.467 34.202-25.335 55.737-24.701h464.259l-193.81-190.644c-32.936-32.936-33.568-86.138-0.634-119.073 0 0 0.634-0.634 0.634-0.634l49.403-49.403c32.936-32.302 86.138-32.302 119.073 0l429.423 429.423c15.201 15.201 24.067 35.468 24.701 57.003v0z" />
|
||||
<glyph unicode="" glyph-name="check" data-tags="check" d="M1021.469 686.541c0 17.084-6.328 32.903-18.349 44.924l-89.849 89.215c-24.677 24.677-64.539 24.677-89.215 0.633 0 0 0 0-0.633-0.633l-432.156-432.79-193.616 194.25c-24.677 24.677-64.539 24.677-89.215 0.633 0 0 0 0-0.633-0.633l-89.215-89.215c-24.677-24.677-24.677-64.539-0.633-89.215 0 0 0 0 0.633-0.633l327.755-327.755c24.677-24.677 64.539-24.677 89.215-0.633 0 0 0 0 0.633 0.633l569.46 569.46c12.022 12.022 18.349 27.84 18.349 44.924v0l-2.531-3.163z" />
|
||||
<glyph unicode="" glyph-name="close" data-tags="close" d="M1024 856.869l-103.131 103.131-408.869-408.869-408.869 408.869-103.131-103.131 408.869-408.869-408.869-408.869 103.131-103.131 408.869 408.869 408.869-408.869 103.131 103.131-408.869 408.869z" />
|
||||
<glyph unicode="" glyph-name="plus" data-tags="plus" d="M597.333 533.333v426.667h-170.667v-426.667h-426.667v-170.667h426.667v-426.667h170.667v426.667h426.667v170.667z" />
|
||||
<glyph unicode="" glyph-name="filters" data-tags="filters" d="M217.543 834.589v98.249c0 14.999-12.163 27.162-27.162 27.162h-8.785c-14.999 0-27.162-12.163-27.162-27.162v-98.249c-63.792-14.19-110.78-70.3-110.78-137.38s46.988-123.189 109.844-137.208l0.936-592.841c0-14.999 12.163-27.162 27.162-27.162h7.99c14.999 0 27.162 12.163 27.162 27.162v588.669c69.551 9.191 122.666 68.109 122.666 139.435 0 71.041-52.699 129.772-121.13 139.246zM549.82 417.644v515.184c0 14.999-12.163 27.162-27.162 27.162h-4.796c-14.999 0-27.162-12.163-27.162-27.162v-513.593c-71.358-12.114-125.020-73.469-125.020-147.364s53.662-135.26 124.145-147.242l0.884-159.869c0-14.999 12.163-27.162 27.162-27.162h4.796c14.999 0 27.162 12.163 27.162 27.162v159.745c67.325 15.43 116.8 74.826 116.8 145.772s-49.464 130.342-115.794 145.579zM980.345 594.96c-0.075 69.212-51.022 126.499-117.453 136.489l-0.764 201.379c0 14.999-12.163 27.162-27.162 27.162h-6.387c-14.999 0-27.162-12.163-27.162-27.162v-205.273c-58.17-16.849-99.977-69.642-99.977-132.191s41.807-115.342 99-131.95l0.967-500.252c0-14.999 12.163-27.162 27.162-27.162h4.796c14.999 0 27.162 12.163 27.162 27.162v496.022c67.608 9.329 119.206 66.436 119.809 135.722z" />
|
||||
<glyph unicode="" glyph-name="arrow-line" data-tags="arrow-line" d="M995.878 700.739l-43.703 43.703c-17.591 16.506-41.326 26.645-67.432 26.645s-49.837-10.139-67.483-26.693l-303.387-303.389-305.935 304.692c-17.468 16.781-41.244 27.116-67.432 27.116s-49.958-10.335-67.464-27.148l-44.92-44.92c-17.371-17.206-28.122-41.062-28.122-67.432s10.752-50.226 28.112-67.421l414.583-414.583c17.206-17.371 41.062-28.122 67.432-28.122s50.226 10.752 67.421 28.112l418.329 414.583c17.371 17.206 28.122 41.062 28.122 67.432s-10.752 50.226-28.112 67.421z" />
|
||||
<glyph unicode="" glyph-name="check-empty" data-tags="check-empty" d="M910.2 846.2v-796.4h-796.4v796.4h796.4zM910.2 960h-796.4c-62.6 0-113.8-51.2-113.8-113.8v-796.4c0-62.6 51.2-113.8 113.8-113.8h796.4c62.6 0 113.8 51.2 113.8 113.8v796.4c0 62.6-51.2 113.8-113.8 113.8z" />
|
||||
<glyph unicode="" glyph-name="check1" data-tags="check" d="M910.2 960h-796.4c-62.6 0-113.8-51.2-113.8-113.8v-796.4c0-62.6 51.2-113.8 113.8-113.8h796.4c62.6 0 113.8 51.2 113.8 113.8v796.4c0 62.6-51.2 113.8-113.8 113.8zM398.2 163.6l-284.4 284.4 79.6 79.6 204.8-204.8 432.4 432.4 79.6-79.6-512-512z" />
|
||||
<glyph unicode="" glyph-name="details-arrow" data-tags="details-arrow" d="M512 960.001l-90.24-90.24 357.12-357.76h-778.879v-127.999h778.879l-357.12-357.76 90.24-90.24 511.999 511.999z" />
|
||||
<glyph unicode="" glyph-name="Spinner" data-tags="Spinner" d="M1023.953 448.071c1.137 83.016-18.195 164.895-56.861 238.814-75.625 145.563-216.069 245.637-378.121 270.087v-135.328c85.291-16.489 162.621-63.115 217.207-130.779 89.839-108.035 112.015-257.578 56.861-387.219-38.097-91.545-110.309-163.758-201.855-201.855-93.82-40.37-200.149-40.37-293.969 0-91.545 38.097-163.758 110.309-201.855 201.855-55.155 129.642-32.979 279.184 56.861 387.219 54.586 67.663 131.917 114.289 217.207 130.779v135.328c-163.758-22.745-305.91-123.388-382.102-270.087-69.938-135.328-76.193-294.537-17.058-434.982 51.174-123.388 149.542-221.756 272.93-272.361 127.367-54.017 270.655-54.017 398.023 0 122.819 51.174 220.619 148.975 271.793 271.793 26.724 61.978 40.37 129.073 40.94 196.738v0z" />
|
||||
</font></defs></svg>
|
After Width: | Height: | Size: 6.6 KiB |
Binary file not shown.
Binary file not shown.
|
@ -0,0 +1,202 @@
|
|||
|
||||
Apache License
|
||||
Version 2.0, January 2004
|
||||
http://www.apache.org/licenses/
|
||||
|
||||
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
|
||||
|
||||
1. Definitions.
|
||||
|
||||
"License" shall mean the terms and conditions for use, reproduction,
|
||||
and distribution as defined by Sections 1 through 9 of this document.
|
||||
|
||||
"Licensor" shall mean the copyright owner or entity authorized by
|
||||
the copyright owner that is granting the License.
|
||||
|
||||
"Legal Entity" shall mean the union of the acting entity and all
|
||||
other entities that control, are controlled by, or are under common
|
||||
control with that entity. For the purposes of this definition,
|
||||
"control" means (i) the power, direct or indirect, to cause the
|
||||
direction or management of such entity, whether by contract or
|
||||
otherwise, or (ii) ownership of fifty percent (50%) or more of the
|
||||
outstanding shares, or (iii) beneficial ownership of such entity.
|
||||
|
||||
"You" (or "Your") shall mean an individual or Legal Entity
|
||||
exercising permissions granted by this License.
|
||||
|
||||
"Source" form shall mean the preferred form for making modifications,
|
||||
including but not limited to software source code, documentation
|
||||
source, and configuration files.
|
||||
|
||||
"Object" form shall mean any form resulting from mechanical
|
||||
transformation or translation of a Source form, including but
|
||||
not limited to compiled object code, generated documentation,
|
||||
and conversions to other media types.
|
||||
|
||||
"Work" shall mean the work of authorship, whether in Source or
|
||||
Object form, made available under the License, as indicated by a
|
||||
copyright notice that is included in or attached to the work
|
||||
(an example is provided in the Appendix below).
|
||||
|
||||
"Derivative Works" shall mean any work, whether in Source or Object
|
||||
form, that is based on (or derived from) the Work and for which the
|
||||
editorial revisions, annotations, elaborations, or other modifications
|
||||
represent, as a whole, an original work of authorship. For the purposes
|
||||
of this License, Derivative Works shall not include works that remain
|
||||
separable from, or merely link (or bind by name) to the interfaces of,
|
||||
the Work and Derivative Works thereof.
|
||||
|
||||
"Contribution" shall mean any work of authorship, including
|
||||
the original version of the Work and any modifications or additions
|
||||
to that Work or Derivative Works thereof, that is intentionally
|
||||
submitted to Licensor for inclusion in the Work by the copyright owner
|
||||
or by an individual or Legal Entity authorized to submit on behalf of
|
||||
the copyright owner. For the purposes of this definition, "submitted"
|
||||
means any form of electronic, verbal, or written communication sent
|
||||
to the Licensor or its representatives, including but not limited to
|
||||
communication on electronic mailing lists, source code control systems,
|
||||
and issue tracking systems that are managed by, or on behalf of, the
|
||||
Licensor for the purpose of discussing and improving the Work, but
|
||||
excluding communication that is conspicuously marked or otherwise
|
||||
designated in writing by the copyright owner as "Not a Contribution."
|
||||
|
||||
"Contributor" shall mean Licensor and any individual or Legal Entity
|
||||
on behalf of whom a Contribution has been received by Licensor and
|
||||
subsequently incorporated within the Work.
|
||||
|
||||
2. Grant of Copyright License. Subject to the terms and conditions of
|
||||
this License, each Contributor hereby grants to You a perpetual,
|
||||
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||
copyright license to reproduce, prepare Derivative Works of,
|
||||
publicly display, publicly perform, sublicense, and distribute the
|
||||
Work and such Derivative Works in Source or Object form.
|
||||
|
||||
3. Grant of Patent License. Subject to the terms and conditions of
|
||||
this License, each Contributor hereby grants to You a perpetual,
|
||||
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||
(except as stated in this section) patent license to make, have made,
|
||||
use, offer to sell, sell, import, and otherwise transfer the Work,
|
||||
where such license applies only to those patent claims licensable
|
||||
by such Contributor that are necessarily infringed by their
|
||||
Contribution(s) alone or by combination of their Contribution(s)
|
||||
with the Work to which such Contribution(s) was submitted. If You
|
||||
institute patent litigation against any entity (including a
|
||||
cross-claim or counterclaim in a lawsuit) alleging that the Work
|
||||
or a Contribution incorporated within the Work constitutes direct
|
||||
or contributory patent infringement, then any patent licenses
|
||||
granted to You under this License for that Work shall terminate
|
||||
as of the date such litigation is filed.
|
||||
|
||||
4. Redistribution. You may reproduce and distribute copies of the
|
||||
Work or Derivative Works thereof in any medium, with or without
|
||||
modifications, and in Source or Object form, provided that You
|
||||
meet the following conditions:
|
||||
|
||||
(a) You must give any other recipients of the Work or
|
||||
Derivative Works a copy of this License; and
|
||||
|
||||
(b) You must cause any modified files to carry prominent notices
|
||||
stating that You changed the files; and
|
||||
|
||||
(c) You must retain, in the Source form of any Derivative Works
|
||||
that You distribute, all copyright, patent, trademark, and
|
||||
attribution notices from the Source form of the Work,
|
||||
excluding those notices that do not pertain to any part of
|
||||
the Derivative Works; and
|
||||
|
||||
(d) If the Work includes a "NOTICE" text file as part of its
|
||||
distribution, then any Derivative Works that You distribute must
|
||||
include a readable copy of the attribution notices contained
|
||||
within such NOTICE file, excluding those notices that do not
|
||||
pertain to any part of the Derivative Works, in at least one
|
||||
of the following places: within a NOTICE text file distributed
|
||||
as part of the Derivative Works; within the Source form or
|
||||
documentation, if provided along with the Derivative Works; or,
|
||||
within a display generated by the Derivative Works, if and
|
||||
wherever such third-party notices normally appear. The contents
|
||||
of the NOTICE file are for informational purposes only and
|
||||
do not modify the License. You may add Your own attribution
|
||||
notices within Derivative Works that You distribute, alongside
|
||||
or as an addendum to the NOTICE text from the Work, provided
|
||||
that such additional attribution notices cannot be construed
|
||||
as modifying the License.
|
||||
|
||||
You may add Your own copyright statement to Your modifications and
|
||||
may provide additional or different license terms and conditions
|
||||
for use, reproduction, or distribution of Your modifications, or
|
||||
for any such Derivative Works as a whole, provided Your use,
|
||||
reproduction, and distribution of the Work otherwise complies with
|
||||
the conditions stated in this License.
|
||||
|
||||
5. Submission of Contributions. Unless You explicitly state otherwise,
|
||||
any Contribution intentionally submitted for inclusion in the Work
|
||||
by You to the Licensor shall be under the terms and conditions of
|
||||
this License, without any additional terms or conditions.
|
||||
Notwithstanding the above, nothing herein shall supersede or modify
|
||||
the terms of any separate license agreement you may have executed
|
||||
with Licensor regarding such Contributions.
|
||||
|
||||
6. Trademarks. This License does not grant permission to use the trade
|
||||
names, trademarks, service marks, or product names of the Licensor,
|
||||
except as required for reasonable and customary use in describing the
|
||||
origin of the Work and reproducing the content of the NOTICE file.
|
||||
|
||||
7. Disclaimer of Warranty. Unless required by applicable law or
|
||||
agreed to in writing, Licensor provides the Work (and each
|
||||
Contributor provides its Contributions) on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
||||
implied, including, without limitation, any warranties or conditions
|
||||
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
|
||||
PARTICULAR PURPOSE. You are solely responsible for determining the
|
||||
appropriateness of using or redistributing the Work and assume any
|
||||
risks associated with Your exercise of permissions under this License.
|
||||
|
||||
8. Limitation of Liability. In no event and under no legal theory,
|
||||
whether in tort (including negligence), contract, or otherwise,
|
||||
unless required by applicable law (such as deliberate and grossly
|
||||
negligent acts) or agreed to in writing, shall any Contributor be
|
||||
liable to You for damages, including any direct, indirect, special,
|
||||
incidental, or consequential damages of any character arising as a
|
||||
result of this License or out of the use or inability to use the
|
||||
Work (including but not limited to damages for loss of goodwill,
|
||||
work stoppage, computer failure or malfunction, or any and all
|
||||
other commercial damages or losses), even if such Contributor
|
||||
has been advised of the possibility of such damages.
|
||||
|
||||
9. Accepting Warranty or Additional Liability. While redistributing
|
||||
the Work or Derivative Works thereof, You may choose to offer,
|
||||
and charge a fee for, acceptance of support, warranty, indemnity,
|
||||
or other liability obligations and/or rights consistent with this
|
||||
License. However, in accepting such obligations, You may act only
|
||||
on Your own behalf and on Your sole responsibility, not on behalf
|
||||
of any other Contributor, and only if You agree to indemnify,
|
||||
defend, and hold each Contributor harmless for any liability
|
||||
incurred by, or claims asserted against, such Contributor by reason
|
||||
of your accepting any such warranty or additional liability.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
APPENDIX: How to apply the Apache License to your work.
|
||||
|
||||
To apply the Apache License to your work, attach the following
|
||||
boilerplate notice, with the fields enclosed by brackets "[]"
|
||||
replaced with your own identifying information. (Don't include
|
||||
the brackets!) The text should be enclosed in the appropriate
|
||||
comment syntax for the file format. We also recommend that a
|
||||
file or class name and description of purpose be included on the
|
||||
same "printed page" as the copyright notice for easier
|
||||
identification within third-party archives.
|
||||
|
||||
Copyright [yyyy] [name of copyright owner]
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -35,11 +35,15 @@ H5P.ActionBar = (function ($, EventDispatcher) {
|
|||
var handler = function () {
|
||||
self.trigger(type);
|
||||
};
|
||||
H5P.jQuery('<li/>', {
|
||||
|
||||
const $actionList = H5P.jQuery('<li/>', {
|
||||
'class': 'h5p-button h5p-noselect h5p-' + (customClass ? customClass : type),
|
||||
role: 'button',
|
||||
appendTo: $actions
|
||||
});
|
||||
|
||||
const $actionButton = H5P.jQuery('<button/>', {
|
||||
tabindex: 0,
|
||||
title: H5P.t(type + 'Description'),
|
||||
'aria-label': H5P.t(type + 'Description'),
|
||||
html: H5P.t(type),
|
||||
on: {
|
||||
click: handler,
|
||||
|
@ -50,9 +54,11 @@ H5P.ActionBar = (function ($, EventDispatcher) {
|
|||
}
|
||||
}
|
||||
},
|
||||
appendTo: $actions
|
||||
appendTo: $actionList
|
||||
});
|
||||
|
||||
H5P.Tooltip($actionButton.get(0));
|
||||
|
||||
hasActions = true;
|
||||
};
|
||||
|
||||
|
@ -69,14 +75,15 @@ H5P.ActionBar = (function ($, EventDispatcher) {
|
|||
}
|
||||
if (displayOptions.icon) {
|
||||
// Add about H5P button icon
|
||||
H5P.jQuery('<li><a class="h5p-link" href="http://h5p.org" target="_blank" title="' + H5P.t('h5pDescription') + '"></a></li>').appendTo($actions);
|
||||
const $h5pLogo = H5P.jQuery('<li><a class="h5p-link" href="http://h5p.org" target="_blank" aria-label="' + H5P.t('h5pDescription') + '"></a></li>').appendTo($actions);
|
||||
H5P.Tooltip($h5pLogo.find('.h5p-link').get(0));
|
||||
hasActions = true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a reference to the dom element
|
||||
*
|
||||
* @returns {H5P.jQuery}
|
||||
* @return {H5P.jQuery}
|
||||
*/
|
||||
self.getDOMElement = function () {
|
||||
return $actions;
|
||||
|
@ -85,7 +92,7 @@ H5P.ActionBar = (function ($, EventDispatcher) {
|
|||
/**
|
||||
* Does the actionbar contain actions?
|
||||
*
|
||||
* @returns {Boolean}
|
||||
* @return {Boolean}
|
||||
*/
|
||||
self.hasActions = function () {
|
||||
return hasActions;
|
||||
|
|
|
@ -87,7 +87,7 @@ H5P.ConfirmationDialog = (function (EventDispatcher) {
|
|||
popup.setAttribute('aria-labelledby', 'h5p-confirmation-dialog-dialog-text-' + uniqueId);
|
||||
popupBackground.appendChild(popup);
|
||||
popup.addEventListener('keydown', function (e) {
|
||||
if (e.which === 27) {// Esc key
|
||||
if (e.key === 'Escape') {// Esc key
|
||||
// Exit dialog
|
||||
dialogCanceled(e);
|
||||
}
|
||||
|
@ -135,18 +135,18 @@ H5P.ConfirmationDialog = (function (EventDispatcher) {
|
|||
// Exit button
|
||||
var exitButton = document.createElement('button');
|
||||
exitButton.classList.add('h5p-confirmation-dialog-exit');
|
||||
exitButton.setAttribute('aria-hidden', 'true');
|
||||
exitButton.tabIndex = -1;
|
||||
exitButton.title = options.cancelText;
|
||||
exitButton.setAttribute('aria-label', options.cancelText);
|
||||
|
||||
// Cancel handler
|
||||
cancelButton.addEventListener('click', dialogCanceled);
|
||||
cancelButton.addEventListener('keydown', function (e) {
|
||||
if (e.which === 32) { // Space
|
||||
if (e.key === ' ') { // Space
|
||||
dialogCanceled(e);
|
||||
}
|
||||
else if (e.which === 9 && e.shiftKey) { // Shift-tab
|
||||
flowTo(confirmButton, e);
|
||||
else if (e.key === 'Tab' && e.shiftKey) { // Shift-tab
|
||||
const nextbutton = options.hideExit ? confirmButton : exitButton;
|
||||
flowTo(nextbutton, e);
|
||||
}
|
||||
});
|
||||
|
||||
|
@ -161,11 +161,17 @@ H5P.ConfirmationDialog = (function (EventDispatcher) {
|
|||
// Confirm handler
|
||||
confirmButton.addEventListener('click', dialogConfirmed);
|
||||
confirmButton.addEventListener('keydown', function (e) {
|
||||
if (e.which === 32) { // Space
|
||||
if (e.key === ' ') { // Space
|
||||
dialogConfirmed(e);
|
||||
}
|
||||
else if (e.which === 9 && !e.shiftKey) { // Tab
|
||||
const nextButton = !options.hideCancel ? cancelButton : confirmButton;
|
||||
else if (e.key === 'Tab' && !e.shiftKey) { // Tab
|
||||
let nextButton = confirmButton;
|
||||
if (!options.hideExit) {
|
||||
nextButton = exitButton;
|
||||
}
|
||||
else if (!options.hideCancel) {
|
||||
nextButton = cancelButton;
|
||||
}
|
||||
flowTo(nextButton, e);
|
||||
}
|
||||
});
|
||||
|
@ -174,9 +180,13 @@ H5P.ConfirmationDialog = (function (EventDispatcher) {
|
|||
// Exit handler
|
||||
exitButton.addEventListener('click', dialogCanceled);
|
||||
exitButton.addEventListener('keydown', function (e) {
|
||||
if (e.which === 32) { // Space
|
||||
if (e.key === ' ') { // Space
|
||||
dialogCanceled(e);
|
||||
}
|
||||
else if (e.key === 'Tab' && !e.shiftKey) { // Tab
|
||||
const nextButton = options.hideCancel ? confirmButton : cancelButton;
|
||||
flowTo(nextButton, e);
|
||||
}
|
||||
});
|
||||
if (!options.hideExit) {
|
||||
popup.appendChild(exitButton);
|
||||
|
@ -375,7 +385,7 @@ H5P.ConfirmationDialog = (function (EventDispatcher) {
|
|||
/**
|
||||
* Retrieve element
|
||||
*
|
||||
* @returns {HTMLElement}
|
||||
* @return {HTMLElement}
|
||||
*/
|
||||
this.getElement = function () {
|
||||
return popup;
|
||||
|
@ -383,7 +393,7 @@ H5P.ConfirmationDialog = (function (EventDispatcher) {
|
|||
|
||||
/**
|
||||
* Get previously focused element
|
||||
* @returns {HTMLElement}
|
||||
* @return {HTMLElement}
|
||||
*/
|
||||
this.getPreviouslyFocused = function () {
|
||||
return previouslyFocused;
|
||||
|
|
|
@ -22,7 +22,7 @@ H5P.ContentType = function (isRootLibrary) {
|
|||
* Is library standalone or not? Not beeing standalone, means it is
|
||||
* included in another library
|
||||
*
|
||||
* @returns {Boolean}
|
||||
* @return {Boolean}
|
||||
*/
|
||||
ContentType.prototype.isRoot = function () {
|
||||
return isRootLibrary;
|
||||
|
@ -31,7 +31,7 @@ H5P.ContentType = function (isRootLibrary) {
|
|||
/**
|
||||
* Returns the file path of a file in the current library
|
||||
* @param {string} filePath The path to the file relative to the library folder
|
||||
* @returns {string} The full path to the file
|
||||
* @return {string} The full path to the file
|
||||
*/
|
||||
ContentType.prototype.getLibraryFilePath = function (filePath) {
|
||||
return H5P.getLibraryPath(this.libraryInfo.versionedNameNoSpaces) + '/' + filePath;
|
||||
|
|
|
@ -160,7 +160,7 @@ H5P.ContentUpgradeProcess = (function (Version) {
|
|||
ContentUpgradeProcess.prototype.processField = function (field, params, done) {
|
||||
var self = this;
|
||||
|
||||
if (params === undefined) {
|
||||
if (params === undefined || params === null) {
|
||||
return done();
|
||||
}
|
||||
|
||||
|
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
@ -0,0 +1,217 @@
|
|||
/*global H5P*/
|
||||
H5P.Tooltip = (function () {
|
||||
'use strict';
|
||||
|
||||
/**
|
||||
* Create an accessible tooltip
|
||||
*
|
||||
* @param {HTMLElement} triggeringElement The element that should trigger the tooltip
|
||||
* @param {Object} options Options for tooltip
|
||||
* @param {String} options.text The text to be displayed in the tooltip
|
||||
* If not set, will attempt to set text = aria-label of triggeringElement
|
||||
* @param {String[]} options.classes Extra css classes for the tooltip
|
||||
* @param {Boolean} options.ariaHidden Whether the hover should be read by screen readers or not (default: true)
|
||||
* @param {String} options.position Where the tooltip should appear in relation to the
|
||||
* triggeringElement. Accepted positions are "top" (default), "left", "right" and "bottom"
|
||||
*
|
||||
* @constructor
|
||||
*/
|
||||
function Tooltip(triggeringElement, options) {
|
||||
|
||||
// Make sure tooltips have unique id
|
||||
H5P.Tooltip.uniqueId += 1;
|
||||
const tooltipId = 'h5p-tooltip-' + H5P.Tooltip.uniqueId;
|
||||
|
||||
// Default options
|
||||
options = options || {};
|
||||
options.classes = options.classes || [];
|
||||
options.ariaHidden = options.ariaHidden || true;
|
||||
|
||||
// Initiate state
|
||||
let hover = false;
|
||||
let focus = false;
|
||||
|
||||
// Function used by the escape listener
|
||||
const escapeFunction = function (e) {
|
||||
if (e.key === 'Escape') {
|
||||
tooltip.classList.remove('h5p-tooltip-visible');
|
||||
}
|
||||
}
|
||||
|
||||
// Create element
|
||||
const tooltip = document.createElement('div');
|
||||
|
||||
tooltip.classList.add('h5p-tooltip');
|
||||
tooltip.id = tooltipId;
|
||||
tooltip.role = 'tooltip';
|
||||
tooltip.innerHTML = options.text || triggeringElement.getAttribute('aria-label') || '';
|
||||
tooltip.setAttribute('aria-hidden', options.ariaHidden);
|
||||
tooltip.classList.add(...options.classes);
|
||||
|
||||
triggeringElement.appendChild(tooltip);
|
||||
|
||||
// Set the initial position based on options.position
|
||||
switch (options.position) {
|
||||
case 'left':
|
||||
tooltip.classList.add('h5p-tooltip-left');
|
||||
break;
|
||||
case 'right':
|
||||
tooltip.classList.add('h5p-tooltip-right');
|
||||
break;
|
||||
case 'bottom':
|
||||
tooltip.classList.add('h5p-tooltip-bottom');
|
||||
break;
|
||||
default:
|
||||
options.position = 'top';
|
||||
}
|
||||
|
||||
// Aria-describedby will override aria-hidden
|
||||
if (!options.ariaHidden) {
|
||||
triggeringElement.setAttribute('aria-describedby', tooltipId);
|
||||
}
|
||||
|
||||
// Add event listeners to triggeringElement
|
||||
triggeringElement.addEventListener('mouseenter', function () {
|
||||
showTooltip(true);
|
||||
});
|
||||
triggeringElement.addEventListener('mouseleave', function () {
|
||||
hideTooltip(true);
|
||||
});
|
||||
triggeringElement.addEventListener('focusin', function () {
|
||||
showTooltip(false);
|
||||
});
|
||||
triggeringElement.addEventListener('focusout', function () {
|
||||
hideTooltip(false);
|
||||
});
|
||||
|
||||
// Prevent clicks on the tooltip from triggering onClick listeners on the triggeringElement
|
||||
tooltip.addEventListener('click', function (event) {
|
||||
event.stopPropagation();
|
||||
});
|
||||
|
||||
// Use a mutation observer to listen for aria-label being
|
||||
// changed for the triggering element. If so, update the tooltip.
|
||||
// Mutation observer will be used even if the original elements
|
||||
// doesn't have any aria-label.
|
||||
new MutationObserver(function (mutations) {
|
||||
const ariaLabel = mutations[0].target.getAttribute('aria-label');
|
||||
if (ariaLabel) {
|
||||
tooltip.innerHTML = options.text || ariaLabel;
|
||||
}
|
||||
}).observe(triggeringElement, {
|
||||
attributes: true,
|
||||
attributeFilter: ['aria-label'],
|
||||
});
|
||||
|
||||
// Use intersection observer to adjust the tooltip if it is not completely visible
|
||||
new IntersectionObserver(function (entries) {
|
||||
entries.forEach((entry) => {
|
||||
const target = entry.target;
|
||||
const positionClass = 'h5p-tooltip-' + options.position;
|
||||
|
||||
// Stop adjusting when hidden (to prevent a false positive next time)
|
||||
if (entry.intersectionRatio === 0) {
|
||||
['h5p-tooltip-down', 'h5p-tooltip-left', 'h5p-tooltip-right']
|
||||
.forEach(function (adjustmentClass) {
|
||||
if (adjustmentClass !== positionClass) {
|
||||
target.classList.remove(adjustmentClass);
|
||||
}
|
||||
});
|
||||
}
|
||||
// Adjust if not completely visible when meant to be
|
||||
else if (entry.intersectionRatio < 1 && (hover || focus)) {
|
||||
const targetRect = entry.boundingClientRect;
|
||||
const intersectionRect = entry.intersectionRect;
|
||||
|
||||
// Going out of screen on left side
|
||||
if (intersectionRect.left > targetRect.left) {
|
||||
target.classList.add('h5p-tooltip-right');
|
||||
target.classList.remove(positionClass);
|
||||
}
|
||||
// Going out of screen on right side
|
||||
else if (intersectionRect.right < targetRect.right) {
|
||||
target.classList.add('h5p-tooltip-left');
|
||||
target.classList.remove(positionClass);
|
||||
}
|
||||
|
||||
// going out of top of screen
|
||||
if (intersectionRect.top > targetRect.top) {
|
||||
target.classList.add('h5p-tooltip-down');
|
||||
target.classList.remove(positionClass);
|
||||
}
|
||||
// going out of bottom of screen
|
||||
else if (intersectionRect.bottom < targetRect.bottom) {
|
||||
target.classList.add('h5p-tooltip-up');
|
||||
target.classList.remove(positionClass);
|
||||
}
|
||||
}
|
||||
});
|
||||
}).observe(tooltip);
|
||||
|
||||
/**
|
||||
* Makes the tooltip visible and activates it's functionality
|
||||
*
|
||||
* @param {Boolean} triggeredByHover True if triggered by mouse, false if triggered by focus
|
||||
*/
|
||||
const showTooltip = function (triggeredByHover) {
|
||||
if (triggeredByHover) {
|
||||
hover = true;
|
||||
}
|
||||
else {
|
||||
focus = true;
|
||||
}
|
||||
|
||||
tooltip.classList.add('h5p-tooltip-visible');
|
||||
|
||||
// Add listener to iframe body, as esc keypress would not be detected otherwise
|
||||
document.body.addEventListener('keydown', escapeFunction, true);
|
||||
}
|
||||
|
||||
/**
|
||||
* Hides the tooltip and removes listeners
|
||||
*
|
||||
* @param {Boolean} triggeredByHover True if triggered by mouse, false if triggered by focus
|
||||
*/
|
||||
const hideTooltip = function (triggeredByHover) {
|
||||
if (triggeredByHover) {
|
||||
hover = false;
|
||||
}
|
||||
else {
|
||||
focus = false;
|
||||
}
|
||||
|
||||
// Only hide tooltip if neither hovered nor focused
|
||||
if (!hover && !focus) {
|
||||
tooltip.classList.remove('h5p-tooltip-visible');
|
||||
|
||||
// Remove iframe body listener
|
||||
document.body.removeEventListener('keydown', escapeFunction, true);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Change the text displayed by the tooltip
|
||||
*
|
||||
* @param {String} text The new text to be displayed
|
||||
* Set to null to use aria-label of triggeringElement instead
|
||||
*/
|
||||
this.setText = function (text) {
|
||||
options.text = text;
|
||||
tooltip.innerHTML = options.text || triggeringElement.getAttribute('aria-label') || '';
|
||||
};
|
||||
|
||||
/**
|
||||
* Retrieve tooltip
|
||||
*
|
||||
* @return {HTMLElement}
|
||||
*/
|
||||
this.getElement = function () {
|
||||
return tooltip;
|
||||
};
|
||||
}
|
||||
|
||||
return Tooltip;
|
||||
|
||||
})();
|
||||
|
||||
H5P.Tooltip.uniqueId = -1;
|
|
@ -263,7 +263,7 @@ H5P.XAPIEvent.prototype.getContentXAPIId = function (instance) {
|
|||
/**
|
||||
* Check if this event is sent from a child (i.e not from grandchild)
|
||||
*
|
||||
* @returns {Boolean}
|
||||
* @return {Boolean}
|
||||
*/
|
||||
H5P.XAPIEvent.prototype.isFromChild = function () {
|
||||
var parentId = this.getVerifiedStatementValue(['context', 'contextActivities', 'parent', 0, 'id']);
|
||||
|
|
|
@ -28,7 +28,7 @@ function isIOS() {
|
|||
}
|
||||
|
||||
// Detect if we support fullscreen, and what prefix to use.
|
||||
if (document.documentElement.requestFullScreen) {
|
||||
if (document.documentElement.requestFullscreen) {
|
||||
/**
|
||||
* Browser prefix to use when entering fullscreen mode.
|
||||
* undefined means no fullscreen support.
|
||||
|
@ -209,7 +209,7 @@ H5P.init = function (target) {
|
|||
instance.triggerXAPI('accessed-reuse');
|
||||
});
|
||||
actionBar.on('copyrights', function () {
|
||||
var dialog = new H5P.Dialog('copyrights', H5P.t('copyrightInformation'), copyrights, $container);
|
||||
var dialog = new H5P.Dialog('copyrights', H5P.t('copyrightInformation'), copyrights, $container, $actions.find('.h5p-copyrights')[0]);
|
||||
dialog.open(true);
|
||||
instance.triggerXAPI('accessed-copyright');
|
||||
});
|
||||
|
@ -372,13 +372,7 @@ H5P.init = function (target) {
|
|||
if (!H5P.isFramed || H5P.externalEmbed === false) {
|
||||
// Resize everything when window is resized.
|
||||
H5P.jQuery(window.parent).resize(function () {
|
||||
if (window.parent.H5P.isFullscreen) {
|
||||
// Use timeout to avoid bug in certain browsers when exiting fullscreen. Some browser will trigger resize before the fullscreenchange event.
|
||||
H5P.trigger(instance, 'resize');
|
||||
}
|
||||
else {
|
||||
H5P.trigger(instance, 'resize');
|
||||
}
|
||||
H5P.trigger(instance, 'resize');
|
||||
});
|
||||
}
|
||||
|
||||
|
@ -400,10 +394,29 @@ H5P.init = function (target) {
|
|||
|
||||
// Insert H5Ps that should be in iframes.
|
||||
H5P.jQuery('iframe.h5p-iframe:not(.h5p-initialized)', target).each(function () {
|
||||
var contentId = H5P.jQuery(this).addClass('h5p-initialized').data('content-id');
|
||||
this.contentDocument.open();
|
||||
this.contentDocument.write('<!doctype html><html class="h5p-iframe"><head>' + H5P.getHeadTags(contentId) + '</head><body><div class="h5p-content" data-content-id="' + contentId + '"/></body></html>');
|
||||
this.contentDocument.close();
|
||||
const iframe = this;
|
||||
const $iframe = H5P.jQuery(iframe);
|
||||
|
||||
const contentId = $iframe.data('content-id');
|
||||
const contentData = H5PIntegration.contents['cid-' + contentId];
|
||||
const contentLanguage = contentData && contentData.metadata && contentData.metadata.defaultLanguage
|
||||
? contentData.metadata.defaultLanguage : 'en';
|
||||
|
||||
const writeDocument = function () {
|
||||
iframe.contentDocument.open();
|
||||
iframe.contentDocument.write('<!doctype html><html class="h5p-iframe" lang="' + contentLanguage + '"><head>' + H5P.getHeadTags(contentId) + '</head><body><div class="h5p-content" data-content-id="' + contentId + '"/></body></html>');
|
||||
iframe.contentDocument.close();
|
||||
};
|
||||
|
||||
$iframe.addClass('h5p-initialized')
|
||||
if (iframe.contentDocument === null) {
|
||||
// In some Edge cases the iframe isn't always loaded when the page is ready.
|
||||
$iframe.on('load', writeDocument);
|
||||
$iframe.attr('src', 'about:blank');
|
||||
}
|
||||
else {
|
||||
writeDocument();
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
|
@ -666,7 +679,7 @@ H5P.fullScreen = function ($element, instance, exitCallback, body, forceSemiFull
|
|||
|
||||
before('h5p-fullscreen');
|
||||
var first, eventName = (H5P.fullScreenBrowserPrefix === 'ms' ? 'MSFullscreenChange' : H5P.fullScreenBrowserPrefix + 'fullscreenchange');
|
||||
document.addEventListener(eventName, function () {
|
||||
document.addEventListener(eventName, function fullscreenCallback() {
|
||||
if (first === undefined) {
|
||||
// We are entering fullscreen mode
|
||||
first = false;
|
||||
|
@ -676,11 +689,11 @@ H5P.fullScreen = function ($element, instance, exitCallback, body, forceSemiFull
|
|||
|
||||
// We are exiting fullscreen
|
||||
done('h5p-fullscreen');
|
||||
document.removeEventListener(eventName, arguments.callee, false);
|
||||
document.removeEventListener(eventName, fullscreenCallback, false);
|
||||
});
|
||||
|
||||
if (H5P.fullScreenBrowserPrefix === '') {
|
||||
$element[0].requestFullScreen();
|
||||
$element[0].requestFullscreen();
|
||||
}
|
||||
else {
|
||||
var method = (H5P.fullScreenBrowserPrefix === 'ms' ? 'msRequestFullscreen' : H5P.fullScreenBrowserPrefix + 'RequestFullScreen');
|
||||
|
@ -1071,13 +1084,15 @@ H5P.t = function (key, vars, ns) {
|
|||
* Displayed inside the dialog.
|
||||
* @param {H5P.jQuery} $element
|
||||
* Which DOM element the dialog should be inserted after.
|
||||
* @param {H5P.jQuery} $returnElement
|
||||
* Which DOM element the focus should be moved to on close
|
||||
*/
|
||||
H5P.Dialog = function (name, title, content, $element) {
|
||||
H5P.Dialog = function (name, title, content, $element, $returnElement) {
|
||||
/** @alias H5P.Dialog# */
|
||||
var self = this;
|
||||
var $dialog = H5P.jQuery('<div class="h5p-popup-dialog h5p-' + name + '-dialog" role="dialog" tabindex="-1">\
|
||||
var $dialog = H5P.jQuery('<div class="h5p-popup-dialog h5p-' + name + '-dialog" aria-labelledby="' + name + '-dialog-header" aria-modal="true" role="dialog" tabindex="-1">\
|
||||
<div class="h5p-inner">\
|
||||
<h2>' + title + '</h2>\
|
||||
<h2 id="' + name + '-dialog-header">' + title + '</h2>\
|
||||
<div class="h5p-scroll-content">' + content + '</div>\
|
||||
<div class="h5p-close" role="button" tabindex="0" aria-label="' + H5P.t('close') + '" title="' + H5P.t('close') + '"></div>\
|
||||
</div>\
|
||||
|
@ -1136,7 +1151,12 @@ H5P.Dialog = function (name, title, content, $element) {
|
|||
$dialog.remove();
|
||||
H5P.jQuery(self).trigger('dialog-closed', [$dialog]);
|
||||
$element.attr('tabindex', '-1');
|
||||
$element.focus();
|
||||
if ($returnElement) {
|
||||
$returnElement.focus();
|
||||
}
|
||||
else {
|
||||
$element.focus();
|
||||
}
|
||||
}, 200);
|
||||
};
|
||||
};
|
||||
|
@ -1269,7 +1289,7 @@ H5P.findCopyrights = function (info, parameters, contentId, extras) {
|
|||
const path = data.params.file.path;
|
||||
const width = data.params.file.width;
|
||||
const height = data.params.file.height;
|
||||
metadataCopyrights.setThumbnail(new H5P.Thumbnail(H5P.getPath(path, contentId), width, height));
|
||||
metadataCopyrights.setThumbnail(new H5P.Thumbnail(H5P.getPath(path, contentId), width, height, data.params.alt));
|
||||
}
|
||||
info.addMedia(metadataCopyrights);
|
||||
}
|
||||
|
@ -1374,7 +1394,7 @@ H5P.openReuseDialog = function ($element, contentData, library, instance, conten
|
|||
*/
|
||||
H5P.openEmbedDialog = function ($element, embedCode, resizeCode, size, instance) {
|
||||
var fullEmbedCode = embedCode + resizeCode;
|
||||
var dialog = new H5P.Dialog('embed', H5P.t('embed'), '<textarea class="h5p-embed-code-container" autocorrect="off" autocapitalize="off" spellcheck="false"></textarea>' + H5P.t('size') + ': <input type="text" value="' + Math.ceil(size.width) + '" class="h5p-embed-size"/> × <input type="text" value="' + Math.ceil(size.height) + '" class="h5p-embed-size"/> px<br/><div role="button" tabindex="0" class="h5p-expander">' + H5P.t('showAdvanced') + '</div><div class="h5p-expander-content"><p>' + H5P.t('advancedHelp') + '</p><textarea class="h5p-embed-code-container" autocorrect="off" autocapitalize="off" spellcheck="false">' + resizeCode + '</textarea></div>', $element);
|
||||
var dialog = new H5P.Dialog('embed', H5P.t('embed'), '<textarea class="h5p-embed-code-container" autocorrect="off" autocapitalize="off" spellcheck="false"></textarea>' + H5P.t('size') + ': <input aria-label="'+ H5P.t('width') +'" type="text" value="' + Math.ceil(size.width) + '" class="h5p-embed-size"/> × <input aria-label="'+ H5P.t('width') +'" type="text" value="' + Math.ceil(size.height) + '" class="h5p-embed-size"/> px<br/><div role="button" tabindex="0" class="h5p-expander">' + H5P.t('showAdvanced') + '</div><div class="h5p-expander-content"><p>' + H5P.t('advancedHelp') + '</p><textarea class="h5p-embed-code-container" autocorrect="off" autocapitalize="off" spellcheck="false">' + resizeCode + '</textarea></div>', $element);
|
||||
|
||||
// Selecting embed code when dialog is opened
|
||||
H5P.jQuery(dialog).on('dialog-opened', function (event, $dialog) {
|
||||
|
@ -1919,8 +1939,10 @@ H5P.MediaCopyright = function (copyright, labels, order, extraFields) {
|
|||
* @param {string} source
|
||||
* @param {number} width
|
||||
* @param {number} height
|
||||
* @param {string} alt
|
||||
* alternative text for the thumbnail
|
||||
*/
|
||||
H5P.Thumbnail = function (source, width, height) {
|
||||
H5P.Thumbnail = function (source, width, height, alt) {
|
||||
var thumbWidth, thumbHeight = 100;
|
||||
if (width !== undefined) {
|
||||
thumbWidth = Math.round(thumbHeight * (width / height));
|
||||
|
@ -1932,7 +1954,7 @@ H5P.Thumbnail = function (source, width, height) {
|
|||
* @returns {string} HTML.
|
||||
*/
|
||||
this.toString = function () {
|
||||
return '<img src="' + source + '" alt="' + H5P.t('thumbnail') + '" class="h5p-thumbnail" height="' + thumbHeight + '"' + (thumbWidth === undefined ? '' : ' width="' + thumbWidth + '"') + '/>';
|
||||
return '<img src="' + source + '" alt="' + (alt ? alt : '') + '" class="h5p-thumbnail" height="' + thumbHeight + '"' + (thumbWidth === undefined ? '' : ' width="' + thumbWidth + '"') + '/>';
|
||||
};
|
||||
};
|
||||
|
||||
|
@ -2699,15 +2721,18 @@ H5P.createTitle = function (rawTitle, maxLength) {
|
|||
if (!isTmpFile && clipboardData.contentId && !path.match(/^https?:\/\//i)) {
|
||||
// Comes from existing content
|
||||
|
||||
let prefix;
|
||||
if (H5PEditor.contentId) {
|
||||
// .. to existing content
|
||||
return '../' + clipboardData.contentId + '/' + path;
|
||||
prefix = '../' + clipboardData.contentId + '/';
|
||||
}
|
||||
else {
|
||||
// .. to new content
|
||||
return (H5PEditor.contentRelUrl ? H5PEditor.contentRelUrl : '../content/') + clipboardData.contentId + '/' + path;
|
||||
prefix = (H5PEditor.contentRelUrl ? H5PEditor.contentRelUrl : '../content/') + clipboardData.contentId + '/';
|
||||
}
|
||||
return path.substr(0, prefix.length) === prefix ? path : prefix + path;
|
||||
}
|
||||
|
||||
return path; // Will automatically be looked for in tmp folder
|
||||
});
|
||||
|
||||
|
|
File diff suppressed because one or more lines are too long
|
@ -85,7 +85,7 @@ H5P.RequestQueue = (function ($, EventDispatcher) {
|
|||
/**
|
||||
* Start processing of requests queue
|
||||
*
|
||||
* @returns {boolean} Returns false if it was not possible to resume processing queue
|
||||
* @return {boolean} Returns false if it was not possible to resume processing queue
|
||||
*/
|
||||
RequestQueue.prototype.resumeQueue = function () {
|
||||
// Not supported
|
||||
|
|
|
@ -92,7 +92,24 @@ H5PEmbedCommunicator = (function() {
|
|||
return (window.postMessage && window.addEventListener ? new Communicator() : undefined);
|
||||
})();
|
||||
|
||||
document.onreadystatechange = function() {
|
||||
var getH5PObject = async (iFrame) => {
|
||||
var H5P = iFrame.contentWindow.H5P;
|
||||
if (H5P && H5P.instances && H5P.instances[0]) {
|
||||
return H5P;
|
||||
}
|
||||
|
||||
// In some cases, the H5P takes a while to be initialized (which causes some random behat failures).
|
||||
const sleep = (delay) => new Promise((resolve) => setTimeout(resolve, delay));
|
||||
let remainingAttemps = 10;
|
||||
while ((!H5P || !H5P.instances || !H5P.instances[0]) && remainingAttemps > 0) {
|
||||
await sleep(100);
|
||||
H5P = iFrame.contentWindow.H5P;
|
||||
remainingAttemps--;
|
||||
}
|
||||
return H5P;
|
||||
};
|
||||
|
||||
document.onreadystatechange = async() => {
|
||||
// Wait for instances to be initialize.
|
||||
if (document.readyState !== 'complete') {
|
||||
return;
|
||||
|
@ -103,9 +120,7 @@ document.onreadystatechange = function() {
|
|||
if (!iFrame || !iFrame.contentWindow) {
|
||||
return;
|
||||
}
|
||||
var H5P = iFrame.contentWindow.H5P;
|
||||
|
||||
// Check for H5P instances.
|
||||
var H5P = await getH5PObject(iFrame);
|
||||
if (!H5P || !H5P.instances || !H5P.instances[0]) {
|
||||
return;
|
||||
}
|
||||
|
|
|
@ -5,3 +5,4 @@ Changes:
|
|||
|
||||
1. The h5p.js file has been modified to make fullscreen work in the Moodle app. In line 34, the code inside the condition document.documentElement.webkitRequestFullScreen has changed, the original code has been commented.
|
||||
2. The h5p.js file has been modified to simulate a fake full screen in iOS. The H5P file now sends post messages to the app, and also listens to messages sent by the app to enter/exit full screen.
|
||||
3. The embed.js file has been modified to remove optional chaining because it isn't supported in some old devices.
|
||||
|
|
|
@ -0,0 +1,494 @@
|
|||
/*
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*/
|
||||
|
||||
/* cyrillic-ext */
|
||||
@font-face {
|
||||
font-family: 'Open Sans';
|
||||
font-style: italic;
|
||||
font-weight: 400;
|
||||
font-stretch: 100%;
|
||||
font-display: swap;
|
||||
src: url('../fonts/open-sans/opensans-italic-400-600-700-v28-cyrillic-ext.woff2') format('woff2');
|
||||
unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
|
||||
}
|
||||
/* cyrillic */
|
||||
@font-face {
|
||||
font-family: 'Open Sans';
|
||||
font-style: italic;
|
||||
font-weight: 400;
|
||||
font-stretch: 100%;
|
||||
font-display: swap;
|
||||
src: url('../fonts/open-sans/opensans-italic-400-600-700-v28-cyrillic.woff2') format('woff2');
|
||||
unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
|
||||
}
|
||||
/* greek-ext */
|
||||
@font-face {
|
||||
font-family: 'Open Sans';
|
||||
font-style: italic;
|
||||
font-weight: 400;
|
||||
font-stretch: 100%;
|
||||
font-display: swap;
|
||||
src: url('../fonts/open-sans/opensans-italic-400-600-700-v28-greek-ext.woff2') format('woff2');
|
||||
unicode-range: U+1F00-1FFF;
|
||||
}
|
||||
/* greek */
|
||||
@font-face {
|
||||
font-family: 'Open Sans';
|
||||
font-style: italic;
|
||||
font-weight: 400;
|
||||
font-stretch: 100%;
|
||||
font-display: swap;
|
||||
src: url('../fonts/open-sans/opensans-italic-400-600-700-v28-greek.woff2') format('woff2');
|
||||
unicode-range: U+0370-03FF;
|
||||
}
|
||||
/* hebrew */
|
||||
@font-face {
|
||||
font-family: 'Open Sans';
|
||||
font-style: italic;
|
||||
font-weight: 400;
|
||||
font-stretch: 100%;
|
||||
font-display: swap;
|
||||
src: url('../fonts/open-sans/opensans-italic-400-600-700-v28-hebrew.woff2') format('woff2');
|
||||
unicode-range: U+0590-05FF, U+200C-2010, U+20AA, U+25CC, U+FB1D-FB4F;
|
||||
}
|
||||
/* vietnamese */
|
||||
@font-face {
|
||||
font-family: 'Open Sans';
|
||||
font-style: italic;
|
||||
font-weight: 400;
|
||||
font-stretch: 100%;
|
||||
font-display: swap;
|
||||
src: url('../fonts/open-sans/opensans-italic-400-600-700-v28-vietnamese.woff2') format('woff2');
|
||||
unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB;
|
||||
}
|
||||
/* latin-ext */
|
||||
@font-face {
|
||||
font-family: 'Open Sans';
|
||||
font-style: italic;
|
||||
font-weight: 400;
|
||||
font-stretch: 100%;
|
||||
font-display: swap;
|
||||
src: url('../fonts/open-sans/opensans-italic-400-600-700-v28-latin-ext.woff2') format('woff2');
|
||||
unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
|
||||
}
|
||||
/* latin */
|
||||
@font-face {
|
||||
font-family: 'Open Sans';
|
||||
font-style: italic;
|
||||
font-weight: 400;
|
||||
font-stretch: 100%;
|
||||
font-display: swap;
|
||||
src: url('../fonts/open-sans/opensans-italic-400-600-700-v28-latin.woff2') format('woff2');
|
||||
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
|
||||
}
|
||||
/* cyrillic-ext */
|
||||
@font-face {
|
||||
font-family: 'Open Sans';
|
||||
font-style: italic;
|
||||
font-weight: 600;
|
||||
font-stretch: 100%;
|
||||
font-display: swap;
|
||||
src: url('../fonts/open-sans/opensans-italic-400-600-700-v28-cyrillic-ext.woff2') format('woff2');
|
||||
unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
|
||||
}
|
||||
/* cyrillic */
|
||||
@font-face {
|
||||
font-family: 'Open Sans';
|
||||
font-style: italic;
|
||||
font-weight: 600;
|
||||
font-stretch: 100%;
|
||||
font-display: swap;
|
||||
src: url('../fonts/open-sans/opensans-italic-400-600-700-v28-cyrillic.woff2') format('woff2');
|
||||
unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
|
||||
}
|
||||
/* greek-ext */
|
||||
@font-face {
|
||||
font-family: 'Open Sans';
|
||||
font-style: italic;
|
||||
font-weight: 600;
|
||||
font-stretch: 100%;
|
||||
font-display: swap;
|
||||
src: url('../fonts/open-sans/opensans-italic-400-600-700-v28-greek-ext.woff2') format('woff2');
|
||||
unicode-range: U+1F00-1FFF;
|
||||
}
|
||||
/* greek */
|
||||
@font-face {
|
||||
font-family: 'Open Sans';
|
||||
font-style: italic;
|
||||
font-weight: 600;
|
||||
font-stretch: 100%;
|
||||
font-display: swap;
|
||||
src: url('../fonts/open-sans/opensans-italic-400-600-700-v28-greek.woff2') format('woff2');
|
||||
unicode-range: U+0370-03FF;
|
||||
}
|
||||
/* hebrew */
|
||||
@font-face {
|
||||
font-family: 'Open Sans';
|
||||
font-style: italic;
|
||||
font-weight: 600;
|
||||
font-stretch: 100%;
|
||||
font-display: swap;
|
||||
src: url('../fonts/open-sans/opensans-italic-400-600-700-v28-hebrew.woff2') format('woff2');
|
||||
unicode-range: U+0590-05FF, U+200C-2010, U+20AA, U+25CC, U+FB1D-FB4F;
|
||||
}
|
||||
/* vietnamese */
|
||||
@font-face {
|
||||
font-family: 'Open Sans';
|
||||
font-style: italic;
|
||||
font-weight: 600;
|
||||
font-stretch: 100%;
|
||||
font-display: swap;
|
||||
src: url('../fonts/open-sans/opensans-italic-400-600-700-v28-vietnamese.woff2') format('woff2');
|
||||
unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB;
|
||||
}
|
||||
/* latin-ext */
|
||||
@font-face {
|
||||
font-family: 'Open Sans';
|
||||
font-style: italic;
|
||||
font-weight: 600;
|
||||
font-stretch: 100%;
|
||||
font-display: swap;
|
||||
src: url('../fonts/open-sans/opensans-italic-400-600-700-v28-latin-ext.woff2') format('woff2');
|
||||
unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
|
||||
}
|
||||
/* latin */
|
||||
@font-face {
|
||||
font-family: 'Open Sans';
|
||||
font-style: italic;
|
||||
font-weight: 600;
|
||||
font-stretch: 100%;
|
||||
font-display: swap;
|
||||
src: url('../fonts/open-sans/opensans-italic-400-600-700-v28-latin.woff2') format('woff2');
|
||||
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
|
||||
}
|
||||
/* cyrillic-ext */
|
||||
@font-face {
|
||||
font-family: 'Open Sans';
|
||||
font-style: italic;
|
||||
font-weight: 700;
|
||||
font-stretch: 100%;
|
||||
font-display: swap;
|
||||
src: url('../fonts/open-sans/opensans-italic-400-600-700-v28-cyrillic-ext.woff2') format('woff2');
|
||||
unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
|
||||
}
|
||||
/* cyrillic */
|
||||
@font-face {
|
||||
font-family: 'Open Sans';
|
||||
font-style: italic;
|
||||
font-weight: 700;
|
||||
font-stretch: 100%;
|
||||
font-display: swap;
|
||||
src: url('../fonts/open-sans/opensans-italic-400-600-700-v28-cyrillic.woff2') format('woff2');
|
||||
unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
|
||||
}
|
||||
/* greek-ext */
|
||||
@font-face {
|
||||
font-family: 'Open Sans';
|
||||
font-style: italic;
|
||||
font-weight: 700;
|
||||
font-stretch: 100%;
|
||||
font-display: swap;
|
||||
src: url('../fonts/open-sans/opensans-italic-400-600-700-v28-greek-ext.woff2') format('woff2');
|
||||
unicode-range: U+1F00-1FFF;
|
||||
}
|
||||
/* greek */
|
||||
@font-face {
|
||||
font-family: 'Open Sans';
|
||||
font-style: italic;
|
||||
font-weight: 700;
|
||||
font-stretch: 100%;
|
||||
font-display: swap;
|
||||
src: url('../fonts/open-sans/opensans-italic-400-600-700-v28-greek.woff2') format('woff2');
|
||||
unicode-range: U+0370-03FF;
|
||||
}
|
||||
/* hebrew */
|
||||
@font-face {
|
||||
font-family: 'Open Sans';
|
||||
font-style: italic;
|
||||
font-weight: 700;
|
||||
font-stretch: 100%;
|
||||
font-display: swap;
|
||||
src: url('../fonts/open-sans/opensans-italic-400-600-700-v28-hebrew.woff2') format('woff2');
|
||||
unicode-range: U+0590-05FF, U+200C-2010, U+20AA, U+25CC, U+FB1D-FB4F;
|
||||
}
|
||||
/* vietnamese */
|
||||
@font-face {
|
||||
font-family: 'Open Sans';
|
||||
font-style: italic;
|
||||
font-weight: 700;
|
||||
font-stretch: 100%;
|
||||
font-display: swap;
|
||||
src: url('../fonts/open-sans/opensans-italic-400-600-700-v28-vietnamese.woff2') format('woff2');
|
||||
unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB;
|
||||
}
|
||||
/* latin-ext */
|
||||
@font-face {
|
||||
font-family: 'Open Sans';
|
||||
font-style: italic;
|
||||
font-weight: 700;
|
||||
font-stretch: 100%;
|
||||
font-display: swap;
|
||||
src: url('../fonts/open-sans/opensans-italic-400-600-700-v28-latin-ext.woff2') format('woff2');
|
||||
unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
|
||||
}
|
||||
/* latin */
|
||||
@font-face {
|
||||
font-family: 'Open Sans';
|
||||
font-style: italic;
|
||||
font-weight: 700;
|
||||
font-stretch: 100%;
|
||||
font-display: swap;
|
||||
src: url('../fonts/open-sans/opensans-italic-400-600-700-v28-latin.woff2') format('woff2');
|
||||
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
|
||||
}
|
||||
/* cyrillic-ext */
|
||||
@font-face {
|
||||
font-family: 'Open Sans';
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
font-stretch: 100%;
|
||||
font-display: swap;
|
||||
src: url('../fonts/open-sans/opensans-400-600-700-v28-cyrillic-ext.woff2') format('woff2');
|
||||
unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
|
||||
}
|
||||
/* cyrillic */
|
||||
@font-face {
|
||||
font-family: 'Open Sans';
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
font-stretch: 100%;
|
||||
font-display: swap;
|
||||
src: url('../fonts/open-sans/opensans-400-600-700-v28-cyrillic.woff2') format('woff2');
|
||||
unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
|
||||
}
|
||||
/* greek-ext */
|
||||
@font-face {
|
||||
font-family: 'Open Sans';
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
font-stretch: 100%;
|
||||
font-display: swap;
|
||||
src: url('../fonts/open-sans/opensans-400-600-700-v28-greek-ext.woff2') format('woff2');
|
||||
unicode-range: U+1F00-1FFF;
|
||||
}
|
||||
/* greek */
|
||||
@font-face {
|
||||
font-family: 'Open Sans';
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
font-stretch: 100%;
|
||||
font-display: swap;
|
||||
src: url('../fonts/open-sans/opensans-400-600-700-v28-greek.woff2') format('woff2');
|
||||
unicode-range: U+0370-03FF;
|
||||
}
|
||||
/* hebrew */
|
||||
@font-face {
|
||||
font-family: 'Open Sans';
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
font-stretch: 100%;
|
||||
font-display: swap;
|
||||
src: url('../fonts/open-sans/opensans-400-600-700-v28-hebrew.woff2') format('woff2');
|
||||
unicode-range: U+0590-05FF, U+200C-2010, U+20AA, U+25CC, U+FB1D-FB4F;
|
||||
}
|
||||
/* vietnamese */
|
||||
@font-face {
|
||||
font-family: 'Open Sans';
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
font-stretch: 100%;
|
||||
font-display: swap;
|
||||
src: url('../fonts/open-sans/opensans-400-600-700-v28-vietnamese.woff2') format('woff2');
|
||||
unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB;
|
||||
}
|
||||
/* latin-ext */
|
||||
@font-face {
|
||||
font-family: 'Open Sans';
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
font-stretch: 100%;
|
||||
font-display: swap;
|
||||
src: url('../fonts/open-sans/opensans-400-600-700-v28-latin-ext.woff2') format('woff2');
|
||||
unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
|
||||
}
|
||||
/* latin */
|
||||
@font-face {
|
||||
font-family: 'Open Sans';
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
font-stretch: 100%;
|
||||
font-display: swap;
|
||||
src: url('../fonts/open-sans/opensans-400-600-700-v28-latin.woff2') format('woff2');
|
||||
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
|
||||
}
|
||||
/* cyrillic-ext */
|
||||
@font-face {
|
||||
font-family: 'Open Sans';
|
||||
font-style: normal;
|
||||
font-weight: 600;
|
||||
font-stretch: 100%;
|
||||
font-display: swap;
|
||||
src: url('../fonts/open-sans/opensans-400-600-700-v28-cyrillic-ext.woff2') format('woff2');
|
||||
unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
|
||||
}
|
||||
/* cyrillic */
|
||||
@font-face {
|
||||
font-family: 'Open Sans';
|
||||
font-style: normal;
|
||||
font-weight: 600;
|
||||
font-stretch: 100%;
|
||||
font-display: swap;
|
||||
src: url('../fonts/open-sans/opensans-400-600-700-v28-cyrillic.woff2') format('woff2');
|
||||
unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
|
||||
}
|
||||
/* greek-ext */
|
||||
@font-face {
|
||||
font-family: 'Open Sans';
|
||||
font-style: normal;
|
||||
font-weight: 600;
|
||||
font-stretch: 100%;
|
||||
font-display: swap;
|
||||
src: url('../fonts/open-sans/opensans-400-600-700-v28-greek-ext.woff2') format('woff2');
|
||||
unicode-range: U+1F00-1FFF;
|
||||
}
|
||||
/* greek */
|
||||
@font-face {
|
||||
font-family: 'Open Sans';
|
||||
font-style: normal;
|
||||
font-weight: 600;
|
||||
font-stretch: 100%;
|
||||
font-display: swap;
|
||||
src: url('../fonts/open-sans/opensans-400-600-700-v28-greek.woff2') format('woff2');
|
||||
unicode-range: U+0370-03FF;
|
||||
}
|
||||
/* hebrew */
|
||||
@font-face {
|
||||
font-family: 'Open Sans';
|
||||
font-style: normal;
|
||||
font-weight: 600;
|
||||
font-stretch: 100%;
|
||||
font-display: swap;
|
||||
src: url('../fonts/open-sans/opensans-400-600-700-v28-hebrew.woff2') format('woff2');
|
||||
unicode-range: U+0590-05FF, U+200C-2010, U+20AA, U+25CC, U+FB1D-FB4F;
|
||||
}
|
||||
/* vietnamese */
|
||||
@font-face {
|
||||
font-family: 'Open Sans';
|
||||
font-style: normal;
|
||||
font-weight: 600;
|
||||
font-stretch: 100%;
|
||||
font-display: swap;
|
||||
src: url('../fonts/open-sans/opensans-400-600-700-v28-vietnamese.woff2') format('woff2');
|
||||
unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB;
|
||||
}
|
||||
/* latin-ext */
|
||||
@font-face {
|
||||
font-family: 'Open Sans';
|
||||
font-style: normal;
|
||||
font-weight: 600;
|
||||
font-stretch: 100%;
|
||||
font-display: swap;
|
||||
src: url('../fonts/open-sans/opensans-400-600-700-v28-latin-ext.woff2') format('woff2');
|
||||
unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
|
||||
}
|
||||
/* latin */
|
||||
@font-face {
|
||||
font-family: 'Open Sans';
|
||||
font-style: normal;
|
||||
font-weight: 600;
|
||||
font-stretch: 100%;
|
||||
font-display: swap;
|
||||
src: url('../fonts/open-sans/opensans-400-600-700-v28-latin.woff2') format('woff2');
|
||||
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
|
||||
}
|
||||
/* cyrillic-ext */
|
||||
@font-face {
|
||||
font-family: 'Open Sans';
|
||||
font-style: normal;
|
||||
font-weight: 700;
|
||||
font-stretch: 100%;
|
||||
font-display: swap;
|
||||
src: url('../fonts/open-sans/opensans-400-600-700-v28-cyrillic-ext.woff2') format('woff2');
|
||||
unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
|
||||
}
|
||||
/* cyrillic */
|
||||
@font-face {
|
||||
font-family: 'Open Sans';
|
||||
font-style: normal;
|
||||
font-weight: 700;
|
||||
font-stretch: 100%;
|
||||
font-display: swap;
|
||||
src: url('../fonts/open-sans/opensans-400-600-700-v28-cyrillic.woff2') format('woff2');
|
||||
unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
|
||||
}
|
||||
/* greek-ext */
|
||||
@font-face {
|
||||
font-family: 'Open Sans';
|
||||
font-style: normal;
|
||||
font-weight: 700;
|
||||
font-stretch: 100%;
|
||||
font-display: swap;
|
||||
src: url('../fonts/open-sans/opensans-400-600-700-v28-greek-ext.woff2') format('woff2');
|
||||
unicode-range: U+1F00-1FFF;
|
||||
}
|
||||
/* greek */
|
||||
@font-face {
|
||||
font-family: 'Open Sans';
|
||||
font-style: normal;
|
||||
font-weight: 700;
|
||||
font-stretch: 100%;
|
||||
font-display: swap;
|
||||
src: url('../fonts/open-sans/opensans-400-600-700-v28-greek.woff2') format('woff2');
|
||||
unicode-range: U+0370-03FF;
|
||||
}
|
||||
/* hebrew */
|
||||
@font-face {
|
||||
font-family: 'Open Sans';
|
||||
font-style: normal;
|
||||
font-weight: 700;
|
||||
font-stretch: 100%;
|
||||
font-display: swap;
|
||||
src: url('../fonts/open-sans/opensans-400-600-700-v28-hebrew.woff2') format('woff2');
|
||||
unicode-range: U+0590-05FF, U+200C-2010, U+20AA, U+25CC, U+FB1D-FB4F;
|
||||
}
|
||||
/* vietnamese */
|
||||
@font-face {
|
||||
font-family: 'Open Sans';
|
||||
font-style: normal;
|
||||
font-weight: 700;
|
||||
font-stretch: 100%;
|
||||
font-display: swap;
|
||||
src: url('../fonts/open-sans/opensans-400-600-700-v28-vietnamese.woff2') format('woff2');
|
||||
unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB;
|
||||
}
|
||||
/* latin-ext */
|
||||
@font-face {
|
||||
font-family: 'Open Sans';
|
||||
font-style: normal;
|
||||
font-weight: 700;
|
||||
font-stretch: 100%;
|
||||
font-display: swap;
|
||||
src: url('../fonts/open-sans/opensans-400-600-700-v28-latin-ext.woff2') format('woff2');
|
||||
unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
|
||||
}
|
||||
/* latin */
|
||||
@font-face {
|
||||
font-family: 'Open Sans';
|
||||
font-style: normal;
|
||||
font-weight: 700;
|
||||
font-stretch: 100%;
|
||||
font-display: swap;
|
||||
src: url('../fonts/open-sans/opensans-400-600-700-v28-latin.woff2') format('woff2');
|
||||
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
|
||||
}
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
@ -0,0 +1,67 @@
|
|||
.h5p-tooltip {
|
||||
--translateX: -50%;
|
||||
--translateY: 0;
|
||||
|
||||
display: none;
|
||||
position: absolute;
|
||||
bottom: 100%;
|
||||
left: 50%;
|
||||
transform: translateX(var(--translateX)) translateY(var(--translateY));
|
||||
|
||||
z-index: 4;
|
||||
|
||||
font-size: 0.9rem;
|
||||
line-height: 1.5rem;
|
||||
|
||||
padding: 0 0.5rem;
|
||||
white-space: nowrap;
|
||||
|
||||
background: #000;
|
||||
color: #FFF;
|
||||
|
||||
cursor: default;
|
||||
|
||||
/* To hide the position adjustments and to get a bit more
|
||||
pleasent popup effect */
|
||||
-webkit-animation: 800ms ease 0s normal forwards 1 fadein;
|
||||
animation: 800ms ease 0s normal forwards 1 fadein;
|
||||
}
|
||||
|
||||
@keyframes fadein{
|
||||
0% { opacity: 0; }
|
||||
80% { opacity: 0; }
|
||||
100% { opacity: 1; }
|
||||
}
|
||||
|
||||
@-webkit-keyframes fadein{
|
||||
0% { opacity: 0; }
|
||||
80% { opacity: 0; }
|
||||
100% { opacity: 1; }
|
||||
}
|
||||
|
||||
.h5p-tooltip-bottom {
|
||||
top: 100%;
|
||||
bottom: auto;
|
||||
}
|
||||
|
||||
.h5p-tooltip-left {
|
||||
--translateY: -50%;
|
||||
--translateX: 0;
|
||||
top: 50%;
|
||||
bottom: auto;
|
||||
left: auto;
|
||||
right: 100%;
|
||||
}
|
||||
|
||||
.h5p-tooltip-right {
|
||||
--translateY: -50%;
|
||||
--translateX: 0;
|
||||
top: 50%;
|
||||
bottom: auto;
|
||||
left: 100%;
|
||||
right: auto;
|
||||
}
|
||||
|
||||
.h5p-tooltip-visible {
|
||||
display: block;
|
||||
}
|
|
@ -1,17 +1,30 @@
|
|||
/* Import common fonts */
|
||||
@import 'font-open-sans.css';
|
||||
/* General CSS for H5P. Licensed under the MIT License.*/
|
||||
|
||||
/* Custom H5P font to use for icons. */
|
||||
@font-face {
|
||||
font-family: 'h5p';
|
||||
src: url('../fonts/h5p-core-23.eot?mz1lkp');
|
||||
src: url('../fonts/h5p-core-23.eot?mz1lkp#iefix') format('embedded-opentype'),
|
||||
url('../fonts/h5p-core-23.ttf?mz1lkp') format('truetype'),
|
||||
url('../fonts/h5p-core-23.woff?mz1lkp') format('woff'),
|
||||
url('../fonts/h5p-core-23.svg?mz1lkp#h5p') format('svg');
|
||||
src: url('../fonts/h5p-core-28.eot?h1atjl');
|
||||
src: url('../fonts/h5p-core-28.eot?h1atjl#iefix') format('embedded-opentype'),
|
||||
url('../fonts/h5p-core-28.ttf?h1atjl') format('truetype'),
|
||||
url('../fonts/h5p-core-28.woff?h1atjl') format('woff'),
|
||||
url('../fonts/h5p-core-28.svg?h1atjl#h5p-core-28') format('svg');
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'h5p-hub-publish';
|
||||
src: url('../fonts/h5p-hub-publish.eot?wy8ylc');
|
||||
src: url('../fonts/h5p-hub-publish.eot?wy8ylc#iefix') format('embedded-opentype'),
|
||||
url('../fonts/h5p-hub-publish.ttf?wy8ylc') format('truetype'),
|
||||
url('../fonts/h5p-hub-publish.woff?wy8ylc') format('woff'),
|
||||
url('../fonts/h5p-hub-publish.svg?wy8ylc#h5p-hub') format('svg');
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
font-display: block;
|
||||
}
|
||||
|
||||
html.h5p-iframe, html.h5p-iframe > body {
|
||||
font-family: Sans-Serif; /* Use the browser's default sans-serif font. (Since Heletica doesn't look nice on Windows, and Arial on OS X.) */
|
||||
width: 100%;
|
||||
|
@ -43,6 +56,8 @@ html.h5p-iframe .h5p-content {
|
|||
line-height: 1.5em;
|
||||
width: 100%;
|
||||
height: auto;
|
||||
-webkit-text-size-adjust: none;
|
||||
text-size-adjust: none;
|
||||
}
|
||||
html.h5p-iframe .h5p-fullscreen .h5p-content,
|
||||
html.h5p-iframe .h5p-semi-fullscreen .h5p-content {
|
||||
|
@ -177,7 +192,6 @@ div.h5p-fullscreen {
|
|||
.h5p-content ul.h5p-actions {
|
||||
box-sizing: border-box;
|
||||
-moz-box-sizing: border-box;
|
||||
overflow: hidden;
|
||||
list-style: none;
|
||||
padding: 0px 10px;
|
||||
margin: 0;
|
||||
|
@ -199,41 +213,56 @@ div.h5p-fullscreen {
|
|||
background: none;
|
||||
padding: 0 0.75em 0 0.25em;
|
||||
vertical-align: top;
|
||||
color: #999;
|
||||
color: #707070;
|
||||
text-decoration: none;
|
||||
outline: none;
|
||||
line-height: 22px;
|
||||
}
|
||||
.h5p-actions > .h5p-button:hover {
|
||||
color: #666;
|
||||
.h5p-actions button:hover {
|
||||
color: #333;
|
||||
}
|
||||
.h5p-actions > .h5p-button:active,
|
||||
.h5p-actions > .h5p-button:focus,
|
||||
.h5p-actions button:active,
|
||||
.h5p-actions button:focus,
|
||||
.h5p-actions .h5p-link:active,
|
||||
.h5p-actions .h5p-link:focus {
|
||||
color: #666;
|
||||
}
|
||||
.h5p-actions > .h5p-button:focus,
|
||||
.h5p-actions button {
|
||||
display: inline-flex;
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
color: #6A6A6A;
|
||||
position: relative;
|
||||
|
||||
/* Disable default button style */
|
||||
background: none;
|
||||
border: none;
|
||||
font: inherit;
|
||||
cursor: pointer;
|
||||
|
||||
line-height: 2;
|
||||
}
|
||||
.h5p-actions button:focus,
|
||||
.h5p-actions .h5p-link:focus {
|
||||
outline-style: solid;
|
||||
outline-width: thin;
|
||||
outline-offset: -2px;
|
||||
outline-color: #9ecaed;
|
||||
outline-color: #5981A1;
|
||||
}
|
||||
.h5p-actions > .h5p-button:before {
|
||||
.h5p-actions button:before {
|
||||
font-family: 'H5P';
|
||||
font-size: 20px;
|
||||
line-height: 23px;
|
||||
vertical-align: bottom;
|
||||
padding-right: 0;
|
||||
}
|
||||
.h5p-actions > .h5p-button.h5p-export:before {
|
||||
.h5p-actions > .h5p-button.h5p-export > button:before {
|
||||
content: "\e90b";
|
||||
}
|
||||
.h5p-actions > .h5p-button.h5p-copyrights:before {
|
||||
.h5p-actions > .h5p-button.h5p-copyrights > button:before {
|
||||
content: "\e88f";
|
||||
}
|
||||
.h5p-actions > .h5p-button.h5p-embed:before {
|
||||
.h5p-actions > .h5p-button.h5p-embed > button:before {
|
||||
content: "\e892";
|
||||
}
|
||||
.h5p-actions .h5p-link {
|
||||
|
@ -241,8 +270,8 @@ div.h5p-fullscreen {
|
|||
margin-right: 0;
|
||||
font-size: 2.0em;
|
||||
line-height: 23px;
|
||||
overflow: hidden;
|
||||
color: #999;
|
||||
position: relative;
|
||||
color: #6a6a6a;
|
||||
text-decoration: none;
|
||||
outline: none;
|
||||
}
|
||||
|
@ -582,3 +611,30 @@ iframe.h5peditor-semi-fullscreen {
|
|||
.h5p-content.using-mouse *:not(textarea):focus {
|
||||
outline: none !important;
|
||||
}
|
||||
|
||||
.h5p-content-hub-button:before {
|
||||
font-family: "h5p";
|
||||
margin-right: 0.5em;
|
||||
font-size: 0.7em;
|
||||
line-height: 1;
|
||||
}
|
||||
|
||||
.h5p-content-hub-button.unpublish:before {
|
||||
content: "\e916";
|
||||
}
|
||||
|
||||
.h5p-content-hub-button.waiting:before,
|
||||
.h5p-content-hub-button.sync:before {
|
||||
content: "\e917";
|
||||
}
|
||||
|
||||
.h5p-content-hub-button.waiting:before {
|
||||
display: inline-block;
|
||||
animation: rotate 2s linear infinite;
|
||||
}
|
||||
|
||||
@keyframes rotate {
|
||||
to {
|
||||
transform: rotate(360deg);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -909,6 +909,12 @@ export class CoreH5PContentValidator {
|
|||
label: Translate.instant('core.h5p.title'),
|
||||
placeholder: 'La Gioconda',
|
||||
},
|
||||
{
|
||||
name: 'a11yTitle',
|
||||
type: 'text',
|
||||
label: Translate.instant('core.h5p.a11yTitle:label'),
|
||||
optional: true,
|
||||
},
|
||||
{
|
||||
name: 'license',
|
||||
type: 'select',
|
||||
|
|
|
@ -35,6 +35,7 @@ export class CoreH5PCore {
|
|||
'styles/h5p.css',
|
||||
'styles/h5p-confirmation-dialog.css',
|
||||
'styles/h5p-core-button.css',
|
||||
'styles/h5p-tooltip.css',
|
||||
];
|
||||
|
||||
static readonly SCRIPTS = [
|
||||
|
@ -47,6 +48,7 @@ export class CoreH5PCore {
|
|||
'js/h5p-confirmation-dialog.js',
|
||||
'js/h5p-action-bar.js',
|
||||
'js/request-queue.js',
|
||||
'js/h5p-tooltip.js',
|
||||
];
|
||||
|
||||
static readonly ADMIN_SCRIPTS = [
|
||||
|
@ -178,13 +180,28 @@ export class CoreH5PCore {
|
|||
/**
|
||||
* Writes library data as string on the form {machineName} {majorVersion}.{minorVersion}.
|
||||
*
|
||||
* @param libraryData Library data.
|
||||
* @param folderName Use hyphen instead of space in returned string.
|
||||
* @param library Library data.
|
||||
* @returns String on the form {machineName} {majorVersion}.{minorVersion}.
|
||||
*/
|
||||
static libraryToString(libraryData: CoreH5PLibraryBasicData | CoreH5PContentMainLibraryData, folderName?: boolean): string {
|
||||
return ('machineName' in libraryData ? libraryData.machineName : libraryData.name) + (folderName ? '-' : ' ') +
|
||||
libraryData.majorVersion + '.' + libraryData.minorVersion;
|
||||
static libraryToString(library: CoreH5PLibraryBasicData | CoreH5PContentMainLibraryData): string {
|
||||
const name = 'machineName' in library ? library.machineName : library.name;
|
||||
|
||||
return `${name} ${library.majorVersion}.${library.minorVersion}`;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the name of a library's folder name
|
||||
*
|
||||
* @param library Library data.
|
||||
* @returns Folder name.
|
||||
*/
|
||||
static libraryToFolderName(library: CoreH5PLibraryBasicData | CoreH5PContentMainLibraryData): string {
|
||||
const name = 'machineName' in library ? library.machineName : library.name;
|
||||
|
||||
// In LMS, a property named patchVersionInFolderName is checked here. This property is only used to retrieve some icons when
|
||||
// using the editor, and it isn't stored in DB. The check wasn't included here because the app will never have that prop.
|
||||
|
||||
return `${name}-${library.majorVersion}.${library.minorVersion}`;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -505,7 +522,7 @@ export class CoreH5PCore {
|
|||
return files;
|
||||
}
|
||||
|
||||
let cachedAssetsHash: string;
|
||||
let cachedAssetsHash = '';
|
||||
|
||||
if (this.aggregateAssets) {
|
||||
// Get aggregated files for assets.
|
||||
|
@ -537,10 +554,10 @@ export class CoreH5PCore {
|
|||
|
||||
if (this.aggregateAssets) {
|
||||
// Aggregate and store assets.
|
||||
await this.h5pFS.cacheAssets(files, cachedAssetsHash!, folderName, siteId);
|
||||
await this.h5pFS.cacheAssets(files, cachedAssetsHash, folderName, siteId);
|
||||
|
||||
// Keep track of which libraries have been cached in case they are updated.
|
||||
await this.h5pFramework.saveCachedAssets(cachedAssetsHash!, dependencies, folderName, siteId);
|
||||
await this.h5pFramework.saveCachedAssets(cachedAssetsHash, dependencies, folderName, siteId);
|
||||
}
|
||||
|
||||
return files;
|
||||
|
@ -562,7 +579,7 @@ export class CoreH5PCore {
|
|||
|
||||
for (const machineName in dependencies) {
|
||||
const dependency = dependencies[machineName];
|
||||
const folderName = CoreH5PCore.libraryToString(dependency, true);
|
||||
const folderName = CoreH5PCore.libraryToFolderName(dependency);
|
||||
|
||||
roots[folderName] = this.h5pFS.getLibraryFolderPath(dependency, siteId, folderName);
|
||||
}
|
||||
|
@ -641,7 +658,8 @@ export class CoreH5PCore {
|
|||
*
|
||||
* @returns Object with the translations.
|
||||
*/
|
||||
getLocalization(): {[name: string]: string} {
|
||||
getLocalization(): CoreH5PLocalization {
|
||||
// Some strings weren't included in the app because they were strictly related to the H5P Content Hub.
|
||||
return {
|
||||
fullscreen: Translate.instant('core.h5p.fullscreen'),
|
||||
disableFullscreen: Translate.instant('core.h5p.disablefullscreen'),
|
||||
|
@ -710,6 +728,90 @@ export class CoreH5PCore {
|
|||
offlineDialogRetryMessage: Translate.instant('core.h5p.offlineDialogRetryMessage'),
|
||||
offlineDialogRetryButtonLabel: Translate.instant('core.h5p.offlineDialogRetryButtonLabel'),
|
||||
offlineSuccessfulSubmit: Translate.instant('core.h5p.offlineSuccessfulSubmit'),
|
||||
mainTitle: Translate.instant('core.h5p.mainTitle'),
|
||||
editInfoTitle: Translate.instant('core.h5p.editInfoTitle'),
|
||||
cancel: Translate.instant('core.h5p.cancellabel'),
|
||||
back: Translate.instant('core.h5p.back'),
|
||||
next: Translate.instant('core.h5p.next'),
|
||||
reviewInfo: Translate.instant('core.h5p.reviewInfo'),
|
||||
share: Translate.instant('core.h5p.share'),
|
||||
saveChanges: Translate.instant('core.h5p.saveChanges'),
|
||||
requiredInfo: Translate.instant('core.h5p.requiredInfo'),
|
||||
optionalInfo: Translate.instant('core.h5p.optionalInfo'),
|
||||
reviewAndShare: Translate.instant('core.h5p.reviewAndShare'),
|
||||
reviewAndSave: Translate.instant('core.h5p.reviewAndSave'),
|
||||
shared: Translate.instant('core.h5p.shared'),
|
||||
currentStep: Translate.instant('core.h5p.currentStep'),
|
||||
sharingNote: Translate.instant('core.h5p.sharingNote'),
|
||||
licenseDescription: Translate.instant('core.h5p.licenseDescription'),
|
||||
licenseVersion: Translate.instant('core.h5p.licenseversion'),
|
||||
licenseVersionDescription: Translate.instant('core.h5p.licenseVersionDescription'),
|
||||
disciplineLabel: Translate.instant('core.h5p.disciplineLabel'),
|
||||
disciplineDescription: Translate.instant('core.h5p.disciplineDescription'),
|
||||
disciplineLimitReachedMessage: Translate.instant('core.h5p.disciplineLimitReachedMessage'),
|
||||
discipline: {
|
||||
searchPlaceholder: Translate.instant('core.h5p.discipline:searchPlaceholder'),
|
||||
in: Translate.instant('core.h5p.discipline:in'),
|
||||
dropdownButton: Translate.instant('core.h5p.discipline:dropdownButton'),
|
||||
},
|
||||
removeChip: Translate.instant('core.h5p.removeChip'),
|
||||
keywordsPlaceholder: Translate.instant('core.h5p.keywordsPlaceholder'),
|
||||
keywords: Translate.instant('core.h5p.keywords'),
|
||||
keywordsDescription: Translate.instant('core.h5p.keywordsDescription'),
|
||||
altText: Translate.instant('core.h5p.altText'),
|
||||
reviewMessage: Translate.instant('core.h5p.reviewMessage'),
|
||||
subContentWarning: Translate.instant('core.h5p.subContentWarning'),
|
||||
disciplines: Translate.instant('core.h5p.disciplines'),
|
||||
shortDescription: Translate.instant('core.h5p.shortDescription'),
|
||||
longDescription: Translate.instant('core.h5p.longDescription'),
|
||||
icon: Translate.instant('core.h5p.icon'),
|
||||
screenshots: Translate.instant('core.h5p.screenshots'),
|
||||
helpChoosingLicense: Translate.instant('core.h5p.helpChoosingLicense'),
|
||||
shareFailed: Translate.instant('core.h5p.shareFailed'),
|
||||
editingFailed: Translate.instant('core.h5p.editingFailed'),
|
||||
shareTryAgain: Translate.instant('core.h5p.shareTryAgain'),
|
||||
pleaseWait: Translate.instant('core.h5p.pleaseWait'),
|
||||
language: Translate.instant('core.h5p.language'),
|
||||
level: Translate.instant('core.h5p.level'),
|
||||
shortDescriptionPlaceholder: Translate.instant('core.h5p.shortDescriptionPlaceholder'),
|
||||
longDescriptionPlaceholder: Translate.instant('core.h5p.longDescriptionPlaceholder'),
|
||||
description: Translate.instant('core.h5p.description'),
|
||||
iconDescription: Translate.instant('core.h5p.iconDescription'),
|
||||
screenshotsDescription: Translate.instant('core.h5p.screenshotsDescription'),
|
||||
submitted: Translate.instant('core.h5p.submitted'),
|
||||
contentLicenseTitle: Translate.instant('core.h5p.contentLicenseTitle'),
|
||||
licenseDialogDescription: Translate.instant('core.h5p.licenseDialogDescription'),
|
||||
publisherFieldTitle: Translate.instant('core.h5p.publisherFieldTitle'),
|
||||
publisherFieldDescription: Translate.instant('core.h5p.publisherFieldDescription'),
|
||||
emailAddress: Translate.instant('core.h5p.emailAddress'),
|
||||
publisherDescription: Translate.instant('core.h5p.publisherDescription'),
|
||||
publisherDescriptionText: Translate.instant('core.h5p.publisherDescriptionText'),
|
||||
contactPerson: Translate.instant('core.h5p.contactPerson'),
|
||||
phone: Translate.instant('core.h5p.phone'),
|
||||
address: Translate.instant('core.h5p.address'),
|
||||
city: Translate.instant('core.h5p.city'),
|
||||
zip: Translate.instant('core.h5p.zip'),
|
||||
country: Translate.instant('core.h5p.country'),
|
||||
logoUploadText: Translate.instant('core.h5p.logoUploadText'),
|
||||
acceptTerms: Translate.instant('core.h5p.acceptTerms'),
|
||||
accountDetailsLinkText: Translate.instant('core.h5p.accountDetailsLinkText'),
|
||||
maxLength: Translate.instant('core.h5p.maxLength'),
|
||||
keywordExists: Translate.instant('core.h5p.keywordExists'),
|
||||
licenseDetails: Translate.instant('core.h5p.licenseDetails'),
|
||||
remove: Translate.instant('core.h5p.remove'),
|
||||
removeImage: Translate.instant('core.h5p.removeImage'),
|
||||
cancelPublishConfirmationDialogTitle: Translate.instant('core.h5p.removeImage'),
|
||||
cancelPublishConfirmationDialogDescription: Translate.instant('core.h5p.removeImage'),
|
||||
cancelPublishConfirmationDialogCancelButtonText: Translate.instant('core.h5p.removeImage'),
|
||||
cancelPublishConfirmationDialogConfirmButtonText: Translate.instant('core.h5p.removeImage'),
|
||||
add: Translate.instant('core.h5p.add'),
|
||||
age: Translate.instant('core.h5p.age'),
|
||||
ageDescription: Translate.instant('core.h5p.ageDescription'),
|
||||
invalidAge: Translate.instant('core.h5p.invalidAge'),
|
||||
keywordsExits: Translate.instant('core.h5p.keywordsExits'),
|
||||
someKeywordsExits: Translate.instant('core.h5p.someKeywordsExits'),
|
||||
width: Translate.instant('core.h5p.width'),
|
||||
height: Translate.instant('core.h5p.height'),
|
||||
};
|
||||
}
|
||||
|
||||
|
@ -1017,3 +1119,5 @@ export type CoreH5PLibraryAddonData = CoreH5PLibraryBasicDataWithPatch & {
|
|||
preloadedCss?: string; // Comma separated list of stylesheets to load.
|
||||
addTo?: CoreH5PLibraryAddTo | null; // Plugin configuration data.
|
||||
};
|
||||
|
||||
export type CoreH5PLocalization = Record<string, string | Record<string, string>>;
|
||||
|
|
|
@ -363,7 +363,7 @@ export class CoreH5PFileStorage {
|
|||
* @returns The path to the dependency library
|
||||
*/
|
||||
getDependencyPath(dependency: CoreH5PContentDependencyData): string {
|
||||
return 'libraries/' + dependency.machineName + '-' + dependency.majorVersion + '.' + dependency.minorVersion;
|
||||
return 'libraries/' + CoreH5PCore.libraryToFolderName(dependency);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -400,7 +400,7 @@ export class CoreH5PFileStorage {
|
|||
folderName?: string,
|
||||
): string {
|
||||
if (!folderName) {
|
||||
folderName = CoreH5PCore.libraryToString(libraryData, true);
|
||||
folderName = CoreH5PCore.libraryToFolderName(libraryData);
|
||||
}
|
||||
|
||||
return CorePath.concatenatePaths(this.getLibrariesFolderPath(siteId), folderName);
|
||||
|
|
|
@ -19,7 +19,7 @@ import { CoreSites } from '@services/sites';
|
|||
import { CoreMimetypeUtils } from '@services/utils/mimetype';
|
||||
import { CoreUtils } from '@services/utils/utils';
|
||||
import { CoreH5P } from '../services/h5p';
|
||||
import { CoreH5PCore, CoreH5PDisplayOptions } from './core';
|
||||
import { CoreH5PCore, CoreH5PDisplayOptions, CoreH5PLocalization } from './core';
|
||||
import { CoreError } from '@classes/errors/error';
|
||||
import { CorePath } from '@singletons/path';
|
||||
|
||||
|
@ -246,7 +246,7 @@ export type CoreH5PCoreSettings = {
|
|||
saveFreq: boolean;
|
||||
siteUrl: string;
|
||||
l10n: {
|
||||
H5P: {[name: string]: string}; // eslint-disable-line @typescript-eslint/naming-convention
|
||||
H5P: CoreH5PLocalization; // eslint-disable-line @typescript-eslint/naming-convention
|
||||
};
|
||||
user: {
|
||||
name: string;
|
||||
|
|
|
@ -56,16 +56,16 @@ export class CoreH5PStorage {
|
|||
await Promise.all(Object.keys(librariesJsonData).map(async (libString) => {
|
||||
const libraryData: CoreH5PLibraryBeingSaved = librariesJsonData[libString];
|
||||
|
||||
// Find local library identifier.
|
||||
const dbData = await CoreUtils.ignoreErrors(this.h5pFramework.getLibraryByData(libraryData));
|
||||
// Find local library with same major + minor.
|
||||
const existingLibrary = await CoreUtils.ignoreErrors(this.h5pFramework.getLibraryByData(libraryData));
|
||||
|
||||
if (dbData) {
|
||||
if (existingLibrary) {
|
||||
// Library already installed.
|
||||
libraryData.libraryId = dbData.id;
|
||||
libraryData.libraryId = existingLibrary.id;
|
||||
|
||||
const isNewPatch = await this.h5pFramework.isPatchedLibrary(libraryData, dbData);
|
||||
const newerPatchVersion = existingLibrary.patchversion < libraryData.patchVersion;
|
||||
|
||||
if (!isNewPatch) {
|
||||
if (!newerPatchVersion) {
|
||||
// Same or older version, no need to save.
|
||||
libraryData.saveDependencies = false;
|
||||
|
||||
|
|
|
@ -1,12 +1,25 @@
|
|||
{
|
||||
"a11yTitle:label": "Assistive Technologies label",
|
||||
"add": "Add",
|
||||
"acceptTerms": "I accept the <a href=\":url\" target=\"_blank\">terms of use</a>",
|
||||
"accountDetailsLinkText": "here",
|
||||
"additionallicenseinfo": "Any additional information about the licence",
|
||||
"address": "Address",
|
||||
"age": "Typical age",
|
||||
"ageDescription": "The target audience of this content. Possible input formats separated by commas: \"1,34-45,-50,59-\".",
|
||||
"altText": "Alt text",
|
||||
"author": "Author",
|
||||
"authorcomments": "Author comments",
|
||||
"authorcommentsdescription": "Comments for the editor of the content. (This text will not be published as a part of the copyright info.)",
|
||||
"authorname": "Author's name",
|
||||
"authorrole": "Author's role",
|
||||
"back": "Back",
|
||||
"by": "by",
|
||||
"cancellabel": "Cancel",
|
||||
"cancelPublishConfirmationDialogCancelButtonText": "No",
|
||||
"cancelPublishConfirmationDialogConfirmButtonText": "Yes",
|
||||
"cancelPublishConfirmationDialogDescription": "Are you sure you want to cancel the sharing process?",
|
||||
"cancelPublishConfirmationDialogTitle": "Cancel sharing",
|
||||
"ccattribution": "Attribution (CC BY)",
|
||||
"ccattributionnc": "Attribution-NonCommercial (CC BY-NC)",
|
||||
"ccattributionncnd": "Attribution-NonCommercial-NoDerivs (CC BY-NC-ND)",
|
||||
|
@ -18,32 +31,60 @@
|
|||
"changedescription": "Description of change",
|
||||
"changelog": "Changelog",
|
||||
"changeplaceholder": "Photo cropped, text changed, etc.",
|
||||
"city": "City",
|
||||
"close": "Close",
|
||||
"confirmdialogbody": "Please confirm that you wish to proceed. This action cannot be undone.",
|
||||
"confirmdialogheader": "Confirm action",
|
||||
"confirmlabel": "Confirm",
|
||||
"connectionLost": "Connection lost. Results will be stored and sent when the connection is reestablished.",
|
||||
"connectionReestablished": "Connection reestablished.",
|
||||
"contactPerson": "Contact person",
|
||||
"contentCopied": "Content is copied to the clipboard",
|
||||
"contentchanged": "This content has changed since you last used it.",
|
||||
"contentLicenseTitle": "Content license info",
|
||||
"contenttype": "Content type",
|
||||
"copyright": "Rights of use",
|
||||
"copyrightinfo": "Copyright information",
|
||||
"copyrightstring": "Copyright",
|
||||
"copyrighttitle": "View copyright information for this content.",
|
||||
"country": "Country",
|
||||
"creativecommons": "Creative Commons",
|
||||
"currentStep": "Step :step of :total",
|
||||
"date": "Date",
|
||||
"description": "Description",
|
||||
"disablefullscreen": "Disable fullscreen",
|
||||
"discipline:dropdownButton": "Dropdown button",
|
||||
"discipline:in": "in",
|
||||
"discipline:searchPlaceholder": "Type to search for disciplines",
|
||||
"disciplines": "Disciplines",
|
||||
"disciplineLabel": "Disciplines",
|
||||
"disciplineDescription": "You can select multiple disciplines",
|
||||
"disciplineLimitReachedMessage": "You can select up to :numDisciplines disciplines",
|
||||
"download": "Download",
|
||||
"downloadtitle": "Download this content as a H5P file.",
|
||||
"editInfoTitle": "Edit info for <strong>:title</strong>",
|
||||
"editingFailed": "Editing failed.",
|
||||
"editor": "Editor",
|
||||
"emailAddress": "Email address",
|
||||
"embed": "Embed",
|
||||
"embedtitle": "View the embed code for this content.",
|
||||
"errorgetemail": "Error obtaining the user email. Please check your connection and try again.",
|
||||
"fullscreen": "Fullscreen",
|
||||
"gpl": "General Public License v3",
|
||||
"h5ptitle": "Visit h5p.org to check out more content.",
|
||||
"height": "height",
|
||||
"helpChoosingLicense": "Help me choose a license",
|
||||
"hideadvanced": "Hide advanced",
|
||||
"icon": "Icon",
|
||||
"iconDescription": "640x480px. If not selected content will use category icon",
|
||||
"invalidAge": "Invalid input format for Typical age. Possible input formats separated by commas: \"1, 34-45, -50, -59-\".",
|
||||
"keywords": "Keywords",
|
||||
"keywordsDescription": "You can add multiple keywords separated by commas. Press \"Enter\" or \"Add\" to confirm keywords",
|
||||
"keywordExists": "Keyword already exists!",
|
||||
"keywordsExits": "Keywords already exists!",
|
||||
"keywordsPlaceholder": "Add keywords",
|
||||
"language": "Language",
|
||||
"level": "Level",
|
||||
"license": "Licence",
|
||||
"licenseCC010": "CC0 1.0 Universal (CC0 1.0) Public Domain Dedication",
|
||||
"licenseCC010U": "CC0 1.0 Universal",
|
||||
|
@ -52,6 +93,9 @@
|
|||
"licenseCC25": "2.5 Generic",
|
||||
"licenseCC30": "3.0 Unported",
|
||||
"licenseCC40": "4.0 International",
|
||||
"licenseDescription": "Select a license for your content",
|
||||
"licenseDetails": "License details",
|
||||
"licenseDialogDescription": "Click on a specific license to get info about proper usage",
|
||||
"licenseGPL": "General Public License",
|
||||
"licenseV1": "Version 1",
|
||||
"licenseV2": "Version 2",
|
||||
|
@ -59,7 +103,14 @@
|
|||
"licensee": "Licensee",
|
||||
"licenseextras": "Licence extras",
|
||||
"licenseversion": "Licence version",
|
||||
"licenseVersionDescription": "Select a license version",
|
||||
"logoUploadText": "Organization logo or avatar",
|
||||
"longDescription": "Long description",
|
||||
"longDescriptionPlaceholder": "Long description of your content",
|
||||
"mainTitle": "Sharing <strong>:title</strong>",
|
||||
"maxLength": ":length is the maximum number of characters",
|
||||
"missingdependency": "Missing dependency {{$a.dep}} required by {{$a.lib}}.",
|
||||
"next": "Next",
|
||||
"nocopyright": "No copyright information available for this content.",
|
||||
"offlineDialogBody": "We were unable to send information about your completion of this task. Please check your internet connection.",
|
||||
"offlineDialogHeader": "Your connection to the server was lost",
|
||||
|
@ -67,28 +118,58 @@
|
|||
"offlineDialogRetryMessage": "Retrying in :num....",
|
||||
"offlineSuccessfulSubmit": "Successfully submitted results.",
|
||||
"offlinedisabled": "The site doesn't allow downloading H5P packages.",
|
||||
"optionalInfo": "Optional info",
|
||||
"originator": "Originator",
|
||||
"pd": "Public Domain",
|
||||
"pddl": "Public Domain Dedication and Licence",
|
||||
"pdm": "Public Domain Mark (PDM)",
|
||||
"phone": "Phone",
|
||||
"play": "Play H5P",
|
||||
"pleaseWait": "Please wait...",
|
||||
"publisherDescription": "Publisher description",
|
||||
"publisherDescriptionText": "This will be displayed under \"Publisher info\" on shared content",
|
||||
"publisherFieldDescription": "This will display as the \"Publisher name\" on shared content",
|
||||
"publisherFieldTitle": "Publisher",
|
||||
"remove": "Remove",
|
||||
"removeChip": "Remove :chip from the list",
|
||||
"removeImage": "Remove image",
|
||||
"requiredInfo": "Required info",
|
||||
"resizescript": "Include this script on your website if you want dynamic sizing of the embedded content:",
|
||||
"resubmitScores": "Attempting to submit stored results.",
|
||||
"reuse": "Reuse",
|
||||
"reuseContent": "Reuse content",
|
||||
"reuseDescription": "Reuse this content.",
|
||||
"reviewAndSave": "Review & Save",
|
||||
"reviewAndShare": "Review & Share",
|
||||
"reviewInfo": "Review info",
|
||||
"reviewMessage": "Please review the info below before you share",
|
||||
"saveChanges": "Save changes",
|
||||
"screenshots": "Screenshots",
|
||||
"screenshotsDescription": "Add up to five screenshots of your content",
|
||||
"share": "Share",
|
||||
"shared": "Shared",
|
||||
"shareFailed": "Share failed.",
|
||||
"shareTryAgain": "Something went wrong, please try to share again.",
|
||||
"sharingNote": "All content details can be edited after sharing",
|
||||
"shortDescription": "Short description",
|
||||
"shortDescriptionPlaceholder": "Short description of your content",
|
||||
"showadvanced": "Show advanced",
|
||||
"showless": "Show less",
|
||||
"showmore": "Show more",
|
||||
"size": "Size",
|
||||
"someKeywordsExits": "Some of these keywords already exist",
|
||||
"source": "Source",
|
||||
"startingover": "You'll be starting over.",
|
||||
"subContentWarning": "Sub-content (images, questions etc.) will be shared under :license unless otherwise specified in the authoring tool",
|
||||
"sublevel": "Sublevel",
|
||||
"submitted": "Submitted!",
|
||||
"thumbnail": "Thumbnail",
|
||||
"title": "Title",
|
||||
"undisclosed": "Undisclosed",
|
||||
"width": "width",
|
||||
"year": "Year",
|
||||
"years": "Year(s)",
|
||||
"yearsfrom": "Years (from)",
|
||||
"yearsto": "Years (to)"
|
||||
"yearsto": "Years (to)",
|
||||
"zip": "Zip"
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue