@ndla/ui 56.0.148-alpha.0 → 56.0.149-alpha.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/es/AudioPlayer/AudioPlayer.mjs +5 -6
- package/es/AudioPlayer/AudioPlayer.mjs.map +1 -1
- package/es/AudioPlayer/Controls.mjs +1 -2
- package/es/AudioPlayer/Controls.mjs.map +1 -1
- package/es/AudioPlayer/SpeechControl.mjs +1 -2
- package/es/AudioPlayer/SpeechControl.mjs.map +1 -1
- package/es/Breadcrumb/Breadcrumb.mjs +3 -4
- package/es/Breadcrumb/Breadcrumb.mjs.map +1 -1
- package/es/Breadcrumb/BreadcrumbItem.mjs +1 -2
- package/es/Breadcrumb/BreadcrumbItem.mjs.map +1 -1
- package/es/Breadcrumb/HomeBreadcrumb.mjs +3 -4
- package/es/Breadcrumb/HomeBreadcrumb.mjs.map +1 -1
- package/es/CampaignBlock/CampaignBlock.mjs +1 -2
- package/es/CampaignBlock/CampaignBlock.mjs.map +1 -1
- package/es/CodeBlock/CodeBlock.mjs +2 -3
- package/es/CodeBlock/CodeBlock.mjs.map +1 -1
- package/es/Concept/Concept.mjs +7 -7
- package/es/Concept/Concept.mjs.map +1 -1
- package/es/CopyParagraphButton/CopyParagraphButton.mjs +1 -2
- package/es/CopyParagraphButton/CopyParagraphButton.mjs.map +1 -1
- package/es/Embed/AudioEmbed.mjs +6 -7
- package/es/Embed/AudioEmbed.mjs.map +1 -1
- package/es/Embed/BrightcoveEmbed.mjs +3 -4
- package/es/Embed/BrightcoveEmbed.mjs.map +1 -1
- package/es/Embed/CodeEmbed.mjs +5 -6
- package/es/Embed/CodeEmbed.mjs.map +1 -1
- package/es/Embed/ConceptEmbed.mjs +2 -2
- package/es/Embed/ConceptEmbed.mjs.map +1 -1
- package/es/Embed/ContentLinkEmbed.mjs +1 -2
- package/es/Embed/ContentLinkEmbed.mjs.map +1 -1
- package/es/Embed/CopyrightEmbed.mjs +1 -2
- package/es/Embed/CopyrightEmbed.mjs.map +1 -1
- package/es/Embed/EmbedErrorPlaceholder.mjs +1 -2
- package/es/Embed/EmbedErrorPlaceholder.mjs.map +1 -1
- package/es/Embed/ExternalEmbed.mjs +5 -6
- package/es/Embed/ExternalEmbed.mjs.map +1 -1
- package/es/Embed/FootnoteEmbed.mjs +1 -2
- package/es/Embed/FootnoteEmbed.mjs.map +1 -1
- package/es/Embed/GlossEmbed.mjs +5 -5
- package/es/Embed/GlossEmbed.mjs.map +1 -1
- package/es/Embed/H5pEmbed.mjs +3 -4
- package/es/Embed/H5pEmbed.mjs.map +1 -1
- package/es/Embed/IframeEmbed.mjs +5 -6
- package/es/Embed/IframeEmbed.mjs.map +1 -1
- package/es/Embed/ImageEmbed.mjs +3 -4
- package/es/Embed/ImageEmbed.mjs.map +1 -1
- package/es/Embed/RelatedContentEmbed.mjs +1 -2
- package/es/Embed/RelatedContentEmbed.mjs.map +1 -1
- package/es/Embed/UnknownEmbed.mjs +1 -2
- package/es/Embed/UnknownEmbed.mjs.map +1 -1
- package/es/Embed/UuDisclaimerEmbed.mjs +1 -2
- package/es/Embed/UuDisclaimerEmbed.mjs.map +1 -1
- package/es/FactBox/FactBox.mjs +1 -2
- package/es/FactBox/FactBox.mjs.map +1 -1
- package/es/Gloss/Gloss.mjs +5 -6
- package/es/Gloss/Gloss.mjs.map +1 -1
- package/es/Gloss/GlossExample.mjs +1 -2
- package/es/Gloss/GlossExample.mjs.map +1 -1
- package/es/KeyFigure/KeyFigure.mjs +1 -2
- package/es/KeyFigure/KeyFigure.mjs.map +1 -1
- package/es/LinkBlock/LinkBlock.mjs +1 -2
- package/es/LinkBlock/LinkBlock.mjs.map +1 -1
- package/es/LinkBlock/LinkBlockSection.mjs +1 -2
- package/es/LinkBlock/LinkBlockSection.mjs.map +1 -1
- package/es/ResourceBox/ResourceBox.mjs +1 -2
- package/es/ResourceBox/ResourceBox.mjs.map +1 -1
- package/es/index.mjs +31 -27
- package/es/locale/messages-en.mjs +38 -37
- package/es/locale/messages-en.mjs.map +1 -1
- package/es/locale/messages-nb.mjs +38 -37
- package/es/locale/messages-nb.mjs.map +1 -1
- package/es/locale/messages-nn.mjs +38 -37
- package/es/locale/messages-nn.mjs.map +1 -1
- package/es/locale/messages-se.mjs +38 -37
- package/es/locale/messages-se.mjs.map +1 -1
- package/es/model/SubjectCategories.mjs +9 -2
- package/es/model/SubjectCategories.mjs.map +1 -1
- package/es/model/SubjectTypes.mjs +9 -2
- package/es/model/SubjectTypes.mjs.map +1 -1
- package/es/model/WordClass.mjs +1 -1
- package/es/model/index.mjs +2 -3
- package/es/model/index.mjs.map +1 -1
- package/lib/AudioPlayer/AudioPlayer.d.ts +2 -2
- package/lib/AudioPlayer/AudioPlayer.js +3 -4
- package/lib/AudioPlayer/AudioPlayer.js.map +1 -1
- package/lib/AudioPlayer/Controls.d.ts +2 -2
- package/lib/AudioPlayer/Controls.js +1 -2
- package/lib/AudioPlayer/Controls.js.map +1 -1
- package/lib/AudioPlayer/SpeechControl.d.ts +2 -2
- package/lib/AudioPlayer/SpeechControl.js +1 -2
- package/lib/AudioPlayer/SpeechControl.js.map +1 -1
- package/lib/Breadcrumb/Breadcrumb.d.ts +2 -2
- package/lib/Breadcrumb/Breadcrumb.js +2 -3
- package/lib/Breadcrumb/Breadcrumb.js.map +1 -1
- package/lib/Breadcrumb/BreadcrumbItem.d.ts +2 -2
- package/lib/Breadcrumb/BreadcrumbItem.js +1 -2
- package/lib/Breadcrumb/BreadcrumbItem.js.map +1 -1
- package/lib/Breadcrumb/HomeBreadcrumb.d.ts +2 -2
- package/lib/Breadcrumb/HomeBreadcrumb.js +2 -3
- package/lib/Breadcrumb/HomeBreadcrumb.js.map +1 -1
- package/lib/CampaignBlock/CampaignBlock.d.ts +2 -2
- package/lib/CampaignBlock/CampaignBlock.js +1 -2
- package/lib/CampaignBlock/CampaignBlock.js.map +1 -1
- package/lib/CodeBlock/CodeBlock.d.ts +2 -2
- package/lib/CodeBlock/CodeBlock.js +2 -3
- package/lib/CodeBlock/CodeBlock.js.map +1 -1
- package/lib/Concept/Concept.js +2 -2
- package/lib/Concept/Concept.js.map +1 -1
- package/lib/CopyParagraphButton/CopyParagraphButton.d.ts +2 -2
- package/lib/CopyParagraphButton/CopyParagraphButton.js +1 -2
- package/lib/CopyParagraphButton/CopyParagraphButton.js.map +1 -1
- package/lib/Embed/AudioEmbed.d.ts +2 -2
- package/lib/Embed/AudioEmbed.js +4 -5
- package/lib/Embed/AudioEmbed.js.map +1 -1
- package/lib/Embed/BrightcoveEmbed.d.ts +2 -2
- package/lib/Embed/BrightcoveEmbed.js +2 -3
- package/lib/Embed/BrightcoveEmbed.js.map +1 -1
- package/lib/Embed/CodeEmbed.d.ts +2 -2
- package/lib/Embed/CodeEmbed.js +3 -4
- package/lib/Embed/CodeEmbed.js.map +1 -1
- package/lib/Embed/ConceptEmbed.js +1 -1
- package/lib/Embed/ConceptEmbed.js.map +1 -1
- package/lib/Embed/ContentLinkEmbed.d.ts +2 -2
- package/lib/Embed/ContentLinkEmbed.js +1 -2
- package/lib/Embed/ContentLinkEmbed.js.map +1 -1
- package/lib/Embed/CopyrightEmbed.d.ts +2 -2
- package/lib/Embed/CopyrightEmbed.js +1 -2
- package/lib/Embed/CopyrightEmbed.js.map +1 -1
- package/lib/Embed/EmbedErrorPlaceholder.d.ts +2 -2
- package/lib/Embed/EmbedErrorPlaceholder.js +1 -2
- package/lib/Embed/EmbedErrorPlaceholder.js.map +1 -1
- package/lib/Embed/ExternalEmbed.d.ts +2 -2
- package/lib/Embed/ExternalEmbed.js +3 -4
- package/lib/Embed/ExternalEmbed.js.map +1 -1
- package/lib/Embed/FootnoteEmbed.d.ts +2 -2
- package/lib/Embed/FootnoteEmbed.js +1 -2
- package/lib/Embed/FootnoteEmbed.js.map +1 -1
- package/lib/Embed/GlossEmbed.js +3 -3
- package/lib/Embed/GlossEmbed.js.map +1 -1
- package/lib/Embed/H5pEmbed.d.ts +2 -2
- package/lib/Embed/H5pEmbed.js +2 -3
- package/lib/Embed/H5pEmbed.js.map +1 -1
- package/lib/Embed/IframeEmbed.d.ts +2 -2
- package/lib/Embed/IframeEmbed.js +3 -4
- package/lib/Embed/IframeEmbed.js.map +1 -1
- package/lib/Embed/ImageEmbed.d.ts +2 -2
- package/lib/Embed/ImageEmbed.js +2 -3
- package/lib/Embed/ImageEmbed.js.map +1 -1
- package/lib/Embed/RelatedContentEmbed.d.ts +2 -2
- package/lib/Embed/RelatedContentEmbed.js +1 -2
- package/lib/Embed/RelatedContentEmbed.js.map +1 -1
- package/lib/Embed/UnknownEmbed.d.ts +2 -2
- package/lib/Embed/UnknownEmbed.js +1 -2
- package/lib/Embed/UnknownEmbed.js.map +1 -1
- package/lib/Embed/UuDisclaimerEmbed.d.ts +2 -2
- package/lib/Embed/UuDisclaimerEmbed.js +1 -2
- package/lib/Embed/UuDisclaimerEmbed.js.map +1 -1
- package/lib/FactBox/FactBox.d.ts +2 -2
- package/lib/FactBox/FactBox.js +1 -2
- package/lib/FactBox/FactBox.js.map +1 -1
- package/lib/Gloss/Gloss.d.ts +2 -2
- package/lib/Gloss/Gloss.js +3 -4
- package/lib/Gloss/Gloss.js.map +1 -1
- package/lib/Gloss/GlossExample.d.ts +2 -2
- package/lib/Gloss/GlossExample.js +1 -2
- package/lib/Gloss/GlossExample.js.map +1 -1
- package/lib/KeyFigure/KeyFigure.d.ts +1 -2
- package/lib/KeyFigure/KeyFigure.js +1 -2
- package/lib/KeyFigure/KeyFigure.js.map +1 -1
- package/lib/LinkBlock/LinkBlock.d.ts +2 -2
- package/lib/LinkBlock/LinkBlock.js +1 -2
- package/lib/LinkBlock/LinkBlock.js.map +1 -1
- package/lib/LinkBlock/LinkBlockSection.d.ts +2 -2
- package/lib/LinkBlock/LinkBlockSection.js +1 -2
- package/lib/LinkBlock/LinkBlockSection.js.map +1 -1
- package/lib/ResourceBox/ResourceBox.d.ts +1 -1
- package/lib/ResourceBox/ResourceBox.js +0 -2
- package/lib/ResourceBox/ResourceBox.js.map +1 -1
- package/lib/index.d.ts +30 -26
- package/lib/index.js +37 -27
- package/lib/locale/messages-en.d.ts +11 -9
- package/lib/locale/messages-en.js +47 -46
- package/lib/locale/messages-en.js.map +1 -1
- package/lib/locale/messages-nb.d.ts +11 -9
- package/lib/locale/messages-nb.js +47 -46
- package/lib/locale/messages-nb.js.map +1 -1
- package/lib/locale/messages-nn.d.ts +11 -9
- package/lib/locale/messages-nn.js +47 -46
- package/lib/locale/messages-nn.js.map +1 -1
- package/lib/locale/messages-se.d.ts +11 -9
- package/lib/locale/messages-se.js +47 -46
- package/lib/locale/messages-se.js.map +1 -1
- package/lib/model/SubjectCategories.d.ts +6 -0
- package/lib/model/SubjectCategories.js +9 -1
- package/lib/model/SubjectCategories.js.map +1 -1
- package/lib/model/SubjectTypes.d.ts +6 -0
- package/lib/model/SubjectTypes.js +9 -1
- package/lib/model/SubjectTypes.js.map +1 -1
- package/lib/model/WordClass.js +1 -0
- package/lib/model/index.d.ts +1 -2
- package/lib/model/index.js +2 -3
- package/lib/model/index.js.map +1 -1
- package/package.json +8 -8
- package/src/AudioPlayer/AudiPlayer.stories.tsx +1 -1
- package/src/AudioPlayer/AudioPlayer.tsx +3 -5
- package/src/AudioPlayer/Controls.tsx +1 -3
- package/src/AudioPlayer/SpeechControl.tsx +1 -3
- package/src/Breadcrumb/Breadcrumb.stories.tsx +1 -1
- package/src/Breadcrumb/Breadcrumb.tsx +2 -4
- package/src/Breadcrumb/BreadcrumbItem.tsx +1 -3
- package/src/Breadcrumb/HomeBreadcrumb.stories.tsx +1 -1
- package/src/Breadcrumb/HomeBreadcrumb.tsx +2 -4
- package/src/CampaignBlock/CampaignBlock.stories.tsx +1 -1
- package/src/CampaignBlock/CampaignBlock.tsx +1 -3
- package/src/CodeBlock/CodeBlock.stories.tsx +1 -1
- package/src/CodeBlock/CodeBlock.tsx +1 -3
- package/src/Concept/Concept.tsx +5 -5
- package/src/CopyParagraphButton/CopyParagraphButton.tsx +1 -3
- package/src/Embed/AudioEmbed.stories.tsx +1 -1
- package/src/Embed/AudioEmbed.tsx +3 -5
- package/src/Embed/BrightcoveEmbed.stories.tsx +1 -1
- package/src/Embed/BrightcoveEmbed.tsx +2 -4
- package/src/Embed/CodeEmbed.stories.tsx +1 -1
- package/src/Embed/CodeEmbed.tsx +3 -5
- package/src/Embed/ConceptEmbed.tsx +1 -1
- package/src/Embed/ContentLinkEmbed.tsx +1 -3
- package/src/Embed/CopyrightEmbed.tsx +1 -3
- package/src/Embed/EmbedErrorPlaceholder.tsx +1 -3
- package/src/Embed/ExternalEmbed.stories.tsx +1 -1
- package/src/Embed/ExternalEmbed.tsx +3 -4
- package/src/Embed/FootnoteEmbed.stories.tsx +1 -1
- package/src/Embed/FootnoteEmbed.tsx +1 -3
- package/src/Embed/GlossEmbed.tsx +2 -2
- package/src/Embed/H5pEmbed.stories.tsx +1 -1
- package/src/Embed/H5pEmbed.tsx +2 -4
- package/src/Embed/IframeEmbed.stories.tsx +1 -1
- package/src/Embed/IframeEmbed.tsx +3 -5
- package/src/Embed/ImageEmbed.stories.tsx +1 -1
- package/src/Embed/ImageEmbed.tsx +2 -4
- package/src/Embed/RelatedContentEmbed.stories.tsx +1 -1
- package/src/Embed/RelatedContentEmbed.tsx +1 -3
- package/src/Embed/UnknownEmbed.tsx +1 -3
- package/src/Embed/UuDisclaimerEmbed.stories.tsx +5 -5
- package/src/Embed/UuDisclaimerEmbed.tsx +1 -3
- package/src/FactBox/FactBox.tsx +1 -3
- package/src/FactBox/Factbox.stories.tsx +1 -1
- package/src/Gloss/Gloss.stories.tsx +2 -2
- package/src/Gloss/Gloss.tsx +3 -5
- package/src/Gloss/GlossExample.tsx +1 -3
- package/src/KeyFigure/KeyFigure.stories.tsx +1 -1
- package/src/KeyFigure/KeyFigure.tsx +1 -3
- package/src/LinkBlock/LinkBlock.stories.tsx +2 -2
- package/src/LinkBlock/LinkBlock.tsx +1 -3
- package/src/LinkBlock/LinkBlockSection.tsx +1 -3
- package/src/ResourceBox/ResourceBox.tsx +0 -2
- package/src/index.ts +30 -26
- package/src/locale/messages-en.ts +38 -38
- package/src/locale/messages-nb.ts +38 -38
- package/src/locale/messages-nn.ts +38 -38
- package/src/locale/messages-se.ts +38 -38
- package/src/model/SubjectCategories.ts +7 -0
- package/src/model/SubjectTypes.ts +7 -0
- package/src/model/index.ts +1 -3
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { subjectCategories } from "../model/SubjectCategories.mjs";
|
|
2
|
+
import { subjectTypes } from "../model/SubjectTypes.mjs";
|
|
3
|
+
import { wordClass } from "../model/WordClass.mjs";
|
|
2
4
|
import { contributorTypes } from "@ndla/licenses";
|
|
3
5
|
|
|
4
6
|
//#region src/locale/messages-se.ts
|
|
5
|
-
const { subjectCategories, subjectTypes, wordClass } = model_default;
|
|
6
7
|
const messages = {
|
|
7
8
|
...Object.entries(contributorTypes).reduce((acc, curr) => {
|
|
8
9
|
acc[curr[0]] = curr[1].nb;
|
|
@@ -299,41 +300,41 @@ const messages = {
|
|
|
299
300
|
}
|
|
300
301
|
},
|
|
301
302
|
wordClass: {
|
|
302
|
-
[wordClass.
|
|
303
|
-
[wordClass.
|
|
304
|
-
[wordClass.
|
|
305
|
-
[wordClass.
|
|
306
|
-
[wordClass.
|
|
307
|
-
[wordClass.
|
|
308
|
-
[wordClass.
|
|
309
|
-
[wordClass.
|
|
310
|
-
[wordClass.
|
|
311
|
-
[wordClass.
|
|
312
|
-
[wordClass.
|
|
313
|
-
[wordClass.
|
|
314
|
-
[wordClass.
|
|
315
|
-
[wordClass.
|
|
316
|
-
[wordClass
|
|
317
|
-
[wordClass.
|
|
318
|
-
[wordClass.
|
|
319
|
-
[wordClass.
|
|
320
|
-
[wordClass.
|
|
321
|
-
[wordClass.
|
|
322
|
-
[wordClass.
|
|
323
|
-
[wordClass.
|
|
324
|
-
[wordClass.
|
|
325
|
-
[wordClass.
|
|
326
|
-
[wordClass.
|
|
327
|
-
[wordClass.
|
|
328
|
-
[wordClass.
|
|
329
|
-
[wordClass.
|
|
330
|
-
[wordClass.
|
|
331
|
-
[wordClass.
|
|
332
|
-
[wordClass.
|
|
333
|
-
[wordClass.
|
|
334
|
-
[wordClass.
|
|
335
|
-
[wordClass.
|
|
336
|
-
[wordClass.
|
|
303
|
+
[wordClass.adjective]: "Adjektiivvat",
|
|
304
|
+
[wordClass.adverb]: "Advearba",
|
|
305
|
+
[wordClass.properNoun]: "Iežas namma",
|
|
306
|
+
[wordClass.auxiliary]: "Veahkkesánit",
|
|
307
|
+
[wordClass.complement]: "Dievasmahttin",
|
|
308
|
+
[wordClass.conjunction]: "Konjunksjon",
|
|
309
|
+
[wordClass.coverb]: "Koverb",
|
|
310
|
+
[wordClass.determiner]: "Mearrádussánit",
|
|
311
|
+
[wordClass.interjection]: "Ovttastuvvon",
|
|
312
|
+
[wordClass.quantifier]: "Kvantor",
|
|
313
|
+
[wordClass.marker]: "Sieván",
|
|
314
|
+
[wordClass.modalVerb]: "Modálavearba",
|
|
315
|
+
[wordClass.measureWord]: "Olahussátni",
|
|
316
|
+
[wordClass.noun]: "Substantiivvat",
|
|
317
|
+
[wordClass["noun-zh"]]: "Nome",
|
|
318
|
+
[wordClass.nounPhrase]: "Nomengihppu",
|
|
319
|
+
[wordClass.onomatopoeia]: "Onomatopoetikon",
|
|
320
|
+
[wordClass.particle]: "Partihkkalat",
|
|
321
|
+
[wordClass.demonstrative]: "Čujuhusat",
|
|
322
|
+
[wordClass.personalPronoun]: "Persovnnalaš pronomen",
|
|
323
|
+
[wordClass.preposition]: "Preposišuvdna",
|
|
324
|
+
[wordClass.pronoun]: "Pronomen",
|
|
325
|
+
[wordClass.questionWord]: "Jearaldatsánit",
|
|
326
|
+
[wordClass.locationWord]: "Báikesánit",
|
|
327
|
+
[wordClass.suffix]: "Suffivssat",
|
|
328
|
+
[wordClass.numeral]: "Lohkosánit",
|
|
329
|
+
[wordClass.timeWord]: "Áigebágo",
|
|
330
|
+
[wordClass.timeExpression]: "Áigemearka",
|
|
331
|
+
[wordClass.stativeVerb]: "Dili-vearbba",
|
|
332
|
+
[wordClass.subordinatingConjunction]: "Subjunkšuvdna",
|
|
333
|
+
[wordClass.exclamationWord]: "Ii-rohkossátni",
|
|
334
|
+
[wordClass.expression]: "Ovdanbuktin",
|
|
335
|
+
[wordClass.verb]: "Vearbbat",
|
|
336
|
+
[wordClass.verbComplement]: "Vearbasuorggideapmi",
|
|
337
|
+
[wordClass.verbObject]: "Vearbaobjeakta"
|
|
337
338
|
},
|
|
338
339
|
login: "Čálit sisa",
|
|
339
340
|
component: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"messages-se.mjs","names":["constants"],"sources":["../../src/locale/messages-se.ts"],"sourcesContent":["/**\n * Copyright (c) 2018-present, NDLA.\n *\n * This source code is licensed under the GPLv3 license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\nimport { contributorTypes } from \"@ndla/licenses\";\nimport constants from \"../model\";\n\nconst { subjectCategories, subjectTypes, wordClass } = constants;\n\nconst messages = {\n ...Object.entries(contributorTypes).reduce<Record<string, string>>((acc, curr) => {\n acc[curr[0]] = curr[1].nb;\n return acc;\n }, {}),\n askNDLA: \"Jeara NDLA:s\",\n subjectCategories: {\n [subjectCategories.ACTIVE_SUBJECTS]: \"Doaimmas\",\n [subjectCategories.ARCHIVE_SUBJECTS]: \"Ii doaimmas šat\",\n [subjectCategories.BETA_SUBJECTS]: \"Boahttevaš\",\n [subjectCategories.OTHER]: \"Eará resurssat\",\n [subjectTypes.RESOURCE_COLLECTION]: \"Resursačoakkáldat\",\n },\n subjectTypes: {\n [subjectTypes.ARCHIVE_SUBJECT]: \"Arkivfag\",\n [subjectTypes.BETA_SUBJECT]: \"Betafága\",\n [subjectTypes.RESOURCE_COLLECTION]: \"Resursačoakkáldat\",\n [subjectTypes.SUBJECT]: \"Fága\",\n },\n meta: {\n description:\n \"Kvalitehta sihkarasttojuvvon ja nuvttá olamuttos neahttavuđot oahpponeavvut joatkkaskuvlla oahpahussii\",\n keywords: \"oahpponeavvu, fága, skuvla, joatkka, fidnohárjehalli, pensuma, fágaávnnas\",\n },\n logo: {\n altText: \"Našunála digitála oahppanarena\",\n },\n article: {\n lastUpdated: \"Maŋemusat ođastuvvon\",\n useContent: \"Čujuhit vai ođđasit atnit?\",\n authorsLabel_article: \"Dán lea/leat čállán \",\n authorsLabel_learningPath: \"Laget av\",\n authorsLabel_external: \"Denne lenken er lagt til av\",\n copyPageLinkCopied: \"Liŋka máŋgejuvvon\",\n copyHeaderLink: \"Máŋge liŋka bajilčállagii\",\n conjunction: \"ja\",\n supplierLabel_one: \"Vuoigatvuođaguoddi:\",\n supplierLabel_other: \"Vuoigatvuođaguoddit:\",\n printPage: \"Čálit teavstta\",\n access: {\n onlyTeacher: \"Dát resursa lea dušše olamuttus oahpaheddjiide geat leat Feide bokte sisaloggejuvvon.\",\n },\n footnotes: \"Fotnotar\",\n },\n external: {\n lastUpdated: \"Maŋemusat ođastuvvon\",\n },\n learningPath: {\n copiedFrom: \"Dette er en remiks av en annen læringsti\",\n lastUpdated: \"Maŋemusat ođastuvvon\",\n },\n license: {\n copyTitle: \"Máŋge gáldooainnu\",\n hasCopiedTitle: \"Máŋgejuvvon!\",\n embed: \"Hukse sisa\",\n embedCopied: \"Máŋgejuvvon sisahuksenkoda!\",\n copyText: {\n now: \"dál\",\n podcast: \"podkásta\",\n by: \"geas\",\n internet: \"[Interneahtta]. \",\n noTitle: \"Tihttela haga\",\n downloadedFrom: \"Gos vižžojuvvon: \",\n readDate: \"Lohkan: \",\n },\n download: \"Viečča\",\n openLink: \"Raba ođđa gilkoris\",\n tabs: {\n text: \"Teaksta\",\n images: \"Govat\",\n audio: \"Jietna\",\n video: \"Video\",\n h5p: \"H5P\",\n files: \"Fiillat\",\n embedlink: \"Sisahuksenliŋka\",\n concept: \"Čilgehusat\",\n gloss: \"Gloser\",\n podcast: \"Podkásta\",\n other: \"Eará sisdoallu\",\n },\n embedlink: {\n heading: \"Ná čájehat artihkkala eará sisdoalus\",\n description: \"Dát liŋka čájeha artihkkala konteavstta haga (fállu ja vuolleteaksta)\",\n copyTitle: \"Máŋge liŋkka\",\n hasCopiedTitle: \"Liŋka máŋgejuvvon\",\n },\n image: {\n rules: \"Njuolggadusat gova geavaheapmái:\",\n },\n images: {\n heading: \"Ná geavahat govaid ođđasit\",\n description: \"Muitte máŋget teavstta mii galgá mielddusin govvii go geavahat dan.\",\n rules: \"Njuolggadusat gova geavaheapmái\",\n itemImage: {\n ariaLabel: \"Raba gova ođđa siiddus\",\n zoomImageButtonLabel: \"Stuorit gova\",\n zoomOutImageButtonLabel: \"Unnit gova\",\n expandByline: \"Čájet byline\",\n minimizeByline: \"Čiega byline\",\n },\n licenseText: \"Dán govas lea liseansa\",\n restrictedUseText: \"Dán govas lea\",\n },\n text: {\n heading: \"Ná geavahat teavstta ođđasit\",\n description: \"Muitte čujuhit gáldui go nuppi teavstta anát.\",\n rules: \"Njuolggadusat teavstta geavaheapmái\",\n published: \"Almmuhanbeaivi\",\n licenseText: \"Dán teavsttas lea liseansa\",\n restrictedUseText: \"Dán teavsttas lea\",\n },\n audio: {\n heading: \"Ná geavahat jietnafiilla ođđasit\",\n description: \"Muitte máŋget teavstta mii galgá čuovvut jietnafiilla doppe gos geavahuvvo.\",\n rules: \"Njuolggadusat jietnafiilla geavaheapmái\",\n licenseText: \"Dán jietnafiillas lea liseansa\",\n restrictedUseText: \"Dán jietnafiillas lea\",\n },\n podcast: {\n heading: \"Ná geavahat podkásta ođđasit\",\n description: \"Muitte máŋget teavstta mii galgá čuovvut podkásta doppe gos geavahuvvo.\",\n rules: \"Njuolggadusat podkásta geavaheapmái\",\n licenseText: \"Dán podkasttas lea liseansa\",\n restrictedUseText: \"Dán podkasttas lea\",\n },\n video: {\n heading: \"Ná geavahat video ođđasit\",\n description: \"Muitte máŋget teavstta mii galgá čuovvut video doppe gos dat geavahuvvo.\",\n rules: \"Njuolggadusat video geavaheapmái\",\n itemImage: {\n ariaLabel: \"Raba video ođđa siiddus\",\n },\n licenseText: \"Dán videoi lea liseansa\",\n restrictedUseText: \"Dán videoi lea\",\n },\n other: {\n heading: \"Ná geavahat eará sisdoalu ođđasit\",\n description: \"Njuolggadusaid sisdoalu geavaheapmái gávnnat sisdoalloelemeanttas\",\n itemImage: {\n ariaLabel: \"Raba ođđa siiddus\",\n },\n },\n h5p: {\n heading: \"Ná geavahat H5P-sisdoalu ođđasit\",\n description: \"Njuolggadusaid sisdoalu geavaheapmái gávnnat H5P-elemeanttas\",\n rules: \"Njuolggadusat H5P geavaheapmái\",\n licenseText: \"Dát interaktiiva bargu (H5P) lea ožžon liseanssa\",\n restrictedUseText: \"Dát interaktiiva bargu (H5P) lea ožžon\",\n },\n concept: {\n heading: \"Ná geavahat čilgehusaid ođđasit\",\n description: \"Husk at innebygd innhald i ei forklaring kan ha ein anna lisens enn sjølve forklaringsteksten\",\n rules: \"Njuolggadusat čilgehusa geavaheapmái\",\n embedlink: {\n heading: \"Ná čájehat čilgehusa eará sisdoalus\",\n description: \"Dát liŋka čájeha čilgehusa konteavstta haga (fállu ja vuolleteaksta)\",\n copyTitle: \"Máŋge sisahuksenliŋkka\",\n hasCopiedTitle: \"Sisahuksenliŋka máŋgejuvvon\",\n },\n licenseText: \"Dán čilgehusas lea liseansa\",\n restrictedUseText: \"Dán čilgehusas lea\",\n },\n gloss: {\n heading: \"Movt geavahit ođđasit dajaldagaid\",\n description:\n \"Muitte ahte sisdoalus mii lea vuojuhuvvon ovtta gihppagii sáhttá leat eará liseansa go dušše jietnadat.\",\n rules: \"Glossa geavaheami njuolggadusat\",\n showOrHideExamples: \"Čájet dahje čiega ovdamearkkaid\",\n embedlink: {\n heading: \"Čájet jietnadaga eará sisdoaluin\",\n description: \"Dát liŋka čájeha teavstta konteavstta haga (fállu ja juolgeteaksta)\",\n copyTitle: \"Máŋge sisačálihanliŋkka\",\n hasCopiedTitle: \"Sajáiduhttinliŋka mángejuvvon\",\n },\n licenseText: \"Dán jietnadagas lea liseansa\",\n restrictedUseText: \"Dán jietnadagas lea\",\n },\n files: {\n heading: \"Ná geavahat fiillaid ođđasit\",\n description: \"Muitte máŋget teavsttaid mat galget čuovvut fiillaid doppe gos dat geavahuvvet.\",\n rules: \"Njuolggadusat fiilla geavaheapmái\",\n itemImage: {\n ariaLabel: \"Raba ođđa siiddus\",\n },\n },\n processed: \"Sisdoallu lea rievdaduvvon.\",\n },\n errorMessage: {\n title: \"Ops, juoga manai boastut\",\n description: \"Šállošit, boasttuvuohta čuožžilii.\",\n back: \"Mana ruovttoluotta\",\n goToFrontPage: \"Mana ovdasiidui\",\n },\n figure: {\n button: {\n alternative: \"Lonut siidui mas dulkojuvvo oaidninváttuid ektui\",\n original: \"Lonut orginála videoi\",\n },\n },\n contentTypes: {\n all: \"Buot\",\n article: \"Artikkel\",\n subject: \"Fága\",\n \"topic-article\": \"Fáddá\",\n learningpath: \"Oahppanbálggis\",\n \"learning-path\": \"Oahppanbálggis\",\n \"subject-material\": \"Fágaávdnasat\",\n \"tasks-and-activities\": \"Bihtát ja doaimmat\",\n \"source-material\": \"Gáldomateriála\",\n \"assessment-resources\": \"Árvoštallanresursa\",\n topic: \"Fáddá\",\n multidisciplinary: \"Fágaidrasttideaddji fáddá\",\n image: \"Govva\",\n concept: \"Čilgehus\",\n audio: \"Jietna\",\n podcast: \"Podkásta\",\n h5p: \"H5P\",\n video: \"Video\",\n missing: \"Ukjent\",\n external: \"Ekstern\",\n gloss: \"Glose\",\n programme: \"Programfag\",\n \"podcast-series\": \"Podkast-serie\",\n \"frontpage-article\": \"Om NDLA-artikkel\",\n },\n languages: {\n nb: \"Girjedárogiella\",\n nn: \"Ođđadárogiella\",\n en: \"Eŋgelasgiella\",\n fr: \"Fránskkagiella\",\n de: \"Duiskkagiella\",\n se: \"Davvisámegiella\",\n sma: \"Máttasámegiella\",\n es: \"Espánnjagiella\",\n zh: \"Kiinnágiella\",\n ukr: \"Ukrainsk\",\n unknown: \"Amas\",\n prefixChangeLanguage: \"Vállje giela\",\n },\n breadcrumb: {\n toFrontpage: \"NDLA ovdasiidu\",\n breadcrumb: \"Láibemoallobálggis\",\n },\n codeBlock: {\n copiedCode: \"Koda lea máŋgejuvvon vuorkátávvalii\",\n copyCode: \"Máŋge koda vuorkátávvalii\",\n },\n close: \"Govčča\",\n loading: \"Viežžá\",\n title: \"Tihttel\",\n cancel: \"Botkke\",\n save: \"Vurke\",\n email: \"E-boasta\",\n finished: \"Ferdig\",\n audio: {\n play: \"Čuojat\",\n pause: \"Boatkke\",\n progressBar: \"Fremdriftsindikator\",\n valueText: \"{{start}} av {{end}}\",\n controls: {\n forward15sec: \"Sirdde 15 sekundda ovddas\",\n rewind15sec: \"Sirdde 15 sekundda maŋos\",\n selectSpeed: \"Vállje čuojahanleahtu\",\n adjustVolume: \"Rievdat voluma\",\n },\n textVersion: {\n heading: \"Teakstavearšuvdna\",\n close: \"Govčča teakstavearšuvnna\",\n },\n readMoreDescriptionLabel: \"Čájet eanet\",\n readLessDescriptionLabel: \"Čájet unnit\",\n },\n source: \"Gáldu\",\n related: {\n title: \"Guoskevaš sisdoallu\",\n linkInfo: \"Neahttasiidu čuovvuvaččas\",\n showMore: \"Čájet eanet guoskevaš sisdoalu\",\n showLess: \"Čájet unnit\",\n },\n download: \"Viečča fiilla: \",\n factbox: {\n open: \"Raba fáktádoasa\",\n close: \"Govčča fáktádoasa\",\n },\n embed: {\n linkError: \"Ii sáhttán čájehit liŋkka.\",\n unsupported: `Embed {{type}} ii dorjojuvvo.`,\n embedError: `Šattai meattáhus {{type}} vieččadettiin. Geahččal viežžat siiddu ođđasit.`,\n type: {\n image: \"Govva\",\n video: \"Video\",\n audio: \"Jietna\",\n podcast: \"Podkast\",\n concept: \"Čilgehus\",\n h5p: \"H5P\",\n external: \"Olgguldas resursa\",\n gloss: \"Glose\",\n copyright: \"Tekst\",\n code: \"Kodeblokk\",\n disclaimer: \"UU-advarsel\",\n },\n },\n uuDisclaimer: { title: \"Tilgjengelighet\" },\n gloss: {\n examples: \"Ovdamearkkat\",\n showExamples: \"Vis eksempler\",\n wordClass: \"Sátneluohkká\",\n play: \"Čuojat glose\",\n transcriptions: {\n traditional: \"Árbevirolaš čállinvuohki\",\n pinyin: \"Pinyin\",\n },\n },\n wordClass: {\n [wordClass.wordClass.adjective]: \"Adjektiivvat\",\n [wordClass.wordClass.adverb]: \"Advearba\",\n [wordClass.wordClass.properNoun]: \"Iežas namma\",\n [wordClass.wordClass.auxiliary]: \"Veahkkesánit\",\n [wordClass.wordClass.complement]: \"Dievasmahttin\",\n [wordClass.wordClass.conjunction]: \"Konjunksjon\",\n [wordClass.wordClass.coverb]: \"Koverb\",\n [wordClass.wordClass.determiner]: \"Mearrádussánit\",\n [wordClass.wordClass.interjection]: \"Ovttastuvvon\",\n [wordClass.wordClass.quantifier]: \"Kvantor\",\n [wordClass.wordClass.marker]: \"Sieván\",\n [wordClass.wordClass.modalVerb]: \"Modálavearba\",\n [wordClass.wordClass.measureWord]: \"Olahussátni\",\n [wordClass.wordClass.noun]: \"Substantiivvat\",\n [wordClass.wordClass[\"noun-zh\"]]: \"Nome\",\n [wordClass.wordClass.nounPhrase]: \"Nomengihppu\",\n [wordClass.wordClass.onomatopoeia]: \"Onomatopoetikon\",\n [wordClass.wordClass.particle]: \"Partihkkalat\",\n [wordClass.wordClass.demonstrative]: \"Čujuhusat\",\n [wordClass.wordClass.personalPronoun]: \"Persovnnalaš pronomen\",\n [wordClass.wordClass.preposition]: \"Preposišuvdna\",\n [wordClass.wordClass.pronoun]: \"Pronomen\",\n [wordClass.wordClass.questionWord]: \"Jearaldatsánit\",\n [wordClass.wordClass.locationWord]: \"Báikesánit\",\n [wordClass.wordClass.suffix]: \"Suffivssat\",\n [wordClass.wordClass.numeral]: \"Lohkosánit\",\n [wordClass.wordClass.timeWord]: \"Áigebágo\",\n [wordClass.wordClass.timeExpression]: \"Áigemearka\",\n [wordClass.wordClass.stativeVerb]: \"Dili-vearbba\",\n [wordClass.wordClass.subordinatingConjunction]: \"Subjunkšuvdna\",\n [wordClass.wordClass.exclamationWord]: \"Ii-rohkossátni\",\n [wordClass.wordClass.expression]: \"Ovdanbuktin\",\n [wordClass.wordClass.verb]: \"Vearbbat\",\n [wordClass.wordClass.verbComplement]: \"Vearbasuorggideapmi\",\n [wordClass.wordClass.verbObject]: \"Vearbaobjeakta\",\n },\n login: \"Čálit sisa\",\n component: {\n tagsInput: {\n clearTriggerLabel: \"Fjern alle emneknagger\",\n deleteTagTriggerLabel: \"Fjern emneknagg {{tag}}\",\n tagAdded: \"Emneknagg {{tag}} lagt til\",\n tagsPasted: \"Limte inn {{length}} emneknagger\",\n tagEdited: \"Redigerer emneknagg {{tag}}. Trykk enter for å lagre, eller esc for å avbryte.\",\n tagUpdated: \"Emneknagg oppdatert til {{tag}}\",\n tagDeleted: \"Emneknagg {{tag}} slettet\",\n tagSelected: \"Emneknagg {{tag}} valgt. Trykk enter for å redigere. Trykk backspace eller delete for å slette\",\n },\n combobox: {\n triggerLabel: \"Vis resultater\",\n clearTriggerLabel: \"Fjern valg\",\n },\n pagination: {\n rootLabel: \"Sidenavigering\",\n prevTriggerLabel: \"Forrige side\",\n nextTriggerLabel: \"Neste side\",\n lastPage: \"Siste side, side {{page}}\",\n page: \"Side {{page}}\",\n },\n imageSearch: {\n searchPlaceholder: \"Søk i bilder\",\n searchButtonTitle: \"Søk\",\n imagePreview: {\n creatorsLabel: \"Bilde\",\n license: \"Lisens\",\n caption: \"Bildetekst\",\n altText: \"Alt-tekst\",\n modelRelease: \"Modellklarert\",\n tags: \"Emneknagger\",\n checkboxLabel: \"Sett som metabilde\",\n close: \"Lukk\",\n useImageTitle: \"Bruk bildet\",\n },\n },\n audioSearch: {\n searchPlaceholder: \"Søk i lydfiler\",\n searchButtonTitle: \"Søk\",\n useAudio: \"Velg lyd\",\n noResults: \"Ingen resultater funnet\",\n },\n videoSearch: {\n searchPlaceholder: \"Søk i videoar\",\n searchButtonTitle: \"Søk\",\n loadMoreVideos: \"Last fleire videoar\",\n noResults: \"Ingen videoar funnet\",\n addVideo: \"Bruk video\",\n previewVideo: \"Forhåndsvis\",\n is360Video: \"VR-video\",\n close: \"Lukk\",\n },\n datePicker: {\n dayCell: {\n unavailable: \"Ikke tilgjengelig dato. {{date}}\",\n selected: \"Valgt dato. {{date}}\",\n select: \"Velg dato. {{date}}\",\n },\n nextTrigger: {\n day: \"Gå til neste måned\",\n month: \"Gå til neste år\",\n year: \"Gå til neste tiår\",\n },\n prevTrigger: {\n day: \"Gå til forrige måned\",\n month: \"Gå til forrige år\",\n year: \"Gå til forrige tiår\",\n },\n monthSelect: \"Velg måned\",\n yearSelect: \"Velg år\",\n viewTrigger: {\n day: \"Bytt til dagvisning\",\n month: \"Bytt til månedvisning\",\n year: \"Bytt til årvisning\",\n },\n presetTrigger: {\n single: \"Velg {{date}}\",\n range: \"Velg fra {{start}} til {{end}}\",\n },\n clearTrigger: \"Fjern valgte datoer\",\n trigger: {\n open: \"Åpne datovelger\",\n close: \"Lukk datovelger\",\n },\n content: \"Kalender\",\n },\n },\n richTextEditor: {\n tooltip: {\n bold: \"Fet ({{shortcut}})\",\n code: \"Kode ({{shortcut}})\",\n sub: \"Senket skrift ({{shortcut}})\",\n sup: \"Hevet skrift ({{shortcut}})\",\n underlined: \"Understreket ({{shortcut}})\",\n italic: \"Kursiv ({{shortcut}})\",\n \"numbered-list\": \"Nummerert liste ({{shortcut}})\",\n \"letter-list\": \"Bokstavliste ({{shortcut}})\",\n \"bulleted-list\": \"Punktliste ({{shortcut}})\",\n heading: \"Overskrift {{level}} ({{shortcut}})\",\n paragraph: \"Paragraf ({{shortcut}})\",\n section: \"Seksjon ({{shortcut}})\",\n link: \"Lenke ({{shortcut}})\",\n },\n },\n};\n\nexport default messages;\n"],"mappings":";;;;AAWA,MAAM,EAAE,mBAAmB,cAAc,cAAcA;AAEvD,MAAM,WAAW;CACf,GAAG,OAAO,QAAQ,iBAAiB,CAAC,QAAgC,KAAK,SAAS;AAChF,MAAI,KAAK,MAAM,KAAK,GAAG;AACvB,SAAO;IACN,EAAE,CAAC;CACN,SAAS;CACT,mBAAmB;GAChB,kBAAkB,kBAAkB;GACpC,kBAAkB,mBAAmB;GACrC,kBAAkB,gBAAgB;GAClC,kBAAkB,QAAQ;GAC1B,aAAa,sBAAsB;EACrC;CACD,cAAc;GACX,aAAa,kBAAkB;GAC/B,aAAa,eAAe;GAC5B,aAAa,sBAAsB;GACnC,aAAa,UAAU;EACzB;CACD,MAAM;EACJ,aACE;EACF,UAAU;EACX;CACD,MAAM,EACJ,SAAS,kCACV;CACD,SAAS;EACP,aAAa;EACb,YAAY;EACZ,sBAAsB;EACtB,2BAA2B;EAC3B,uBAAuB;EACvB,oBAAoB;EACpB,gBAAgB;EAChB,aAAa;EACb,mBAAmB;EACnB,qBAAqB;EACrB,WAAW;EACX,QAAQ,EACN,aAAa,yFACd;EACD,WAAW;EACZ;CACD,UAAU,EACR,aAAa,wBACd;CACD,cAAc;EACZ,YAAY;EACZ,aAAa;EACd;CACD,SAAS;EACP,WAAW;EACX,gBAAgB;EAChB,OAAO;EACP,aAAa;EACb,UAAU;GACR,KAAK;GACL,SAAS;GACT,IAAI;GACJ,UAAU;GACV,SAAS;GACT,gBAAgB;GAChB,UAAU;GACX;EACD,UAAU;EACV,UAAU;EACV,MAAM;GACJ,MAAM;GACN,QAAQ;GACR,OAAO;GACP,OAAO;GACP,KAAK;GACL,OAAO;GACP,WAAW;GACX,SAAS;GACT,OAAO;GACP,SAAS;GACT,OAAO;GACR;EACD,WAAW;GACT,SAAS;GACT,aAAa;GACb,WAAW;GACX,gBAAgB;GACjB;EACD,OAAO,EACL,OAAO,oCACR;EACD,QAAQ;GACN,SAAS;GACT,aAAa;GACb,OAAO;GACP,WAAW;IACT,WAAW;IACX,sBAAsB;IACtB,yBAAyB;IACzB,cAAc;IACd,gBAAgB;IACjB;GACD,aAAa;GACb,mBAAmB;GACpB;EACD,MAAM;GACJ,SAAS;GACT,aAAa;GACb,OAAO;GACP,WAAW;GACX,aAAa;GACb,mBAAmB;GACpB;EACD,OAAO;GACL,SAAS;GACT,aAAa;GACb,OAAO;GACP,aAAa;GACb,mBAAmB;GACpB;EACD,SAAS;GACP,SAAS;GACT,aAAa;GACb,OAAO;GACP,aAAa;GACb,mBAAmB;GACpB;EACD,OAAO;GACL,SAAS;GACT,aAAa;GACb,OAAO;GACP,WAAW,EACT,WAAW,2BACZ;GACD,aAAa;GACb,mBAAmB;GACpB;EACD,OAAO;GACL,SAAS;GACT,aAAa;GACb,WAAW,EACT,WAAW,qBACZ;GACF;EACD,KAAK;GACH,SAAS;GACT,aAAa;GACb,OAAO;GACP,aAAa;GACb,mBAAmB;GACpB;EACD,SAAS;GACP,SAAS;GACT,aAAa;GACb,OAAO;GACP,WAAW;IACT,SAAS;IACT,aAAa;IACb,WAAW;IACX,gBAAgB;IACjB;GACD,aAAa;GACb,mBAAmB;GACpB;EACD,OAAO;GACL,SAAS;GACT,aACE;GACF,OAAO;GACP,oBAAoB;GACpB,WAAW;IACT,SAAS;IACT,aAAa;IACb,WAAW;IACX,gBAAgB;IACjB;GACD,aAAa;GACb,mBAAmB;GACpB;EACD,OAAO;GACL,SAAS;GACT,aAAa;GACb,OAAO;GACP,WAAW,EACT,WAAW,qBACZ;GACF;EACD,WAAW;EACZ;CACD,cAAc;EACZ,OAAO;EACP,aAAa;EACb,MAAM;EACN,eAAe;EAChB;CACD,QAAQ,EACN,QAAQ;EACN,aAAa;EACb,UAAU;EACX,EACF;CACD,cAAc;EACZ,KAAK;EACL,SAAS;EACT,SAAS;EACT,iBAAiB;EACjB,cAAc;EACd,iBAAiB;EACjB,oBAAoB;EACpB,wBAAwB;EACxB,mBAAmB;EACnB,wBAAwB;EACxB,OAAO;EACP,mBAAmB;EACnB,OAAO;EACP,SAAS;EACT,OAAO;EACP,SAAS;EACT,KAAK;EACL,OAAO;EACP,SAAS;EACT,UAAU;EACV,OAAO;EACP,WAAW;EACX,kBAAkB;EAClB,qBAAqB;EACtB;CACD,WAAW;EACT,IAAI;EACJ,IAAI;EACJ,IAAI;EACJ,IAAI;EACJ,IAAI;EACJ,IAAI;EACJ,KAAK;EACL,IAAI;EACJ,IAAI;EACJ,KAAK;EACL,SAAS;EACT,sBAAsB;EACvB;CACD,YAAY;EACV,aAAa;EACb,YAAY;EACb;CACD,WAAW;EACT,YAAY;EACZ,UAAU;EACX;CACD,OAAO;CACP,SAAS;CACT,OAAO;CACP,QAAQ;CACR,MAAM;CACN,OAAO;CACP,UAAU;CACV,OAAO;EACL,MAAM;EACN,OAAO;EACP,aAAa;EACb,WAAW;EACX,UAAU;GACR,cAAc;GACd,aAAa;GACb,aAAa;GACb,cAAc;GACf;EACD,aAAa;GACX,SAAS;GACT,OAAO;GACR;EACD,0BAA0B;EAC1B,0BAA0B;EAC3B;CACD,QAAQ;CACR,SAAS;EACP,OAAO;EACP,UAAU;EACV,UAAU;EACV,UAAU;EACX;CACD,UAAU;CACV,SAAS;EACP,MAAM;EACN,OAAO;EACR;CACD,OAAO;EACL,WAAW;EACX,aAAa;EACb,YAAY;EACZ,MAAM;GACJ,OAAO;GACP,OAAO;GACP,OAAO;GACP,SAAS;GACT,SAAS;GACT,KAAK;GACL,UAAU;GACV,OAAO;GACP,WAAW;GACX,MAAM;GACN,YAAY;GACb;EACF;CACD,cAAc,EAAE,OAAO,mBAAmB;CAC1C,OAAO;EACL,UAAU;EACV,cAAc;EACd,WAAW;EACX,MAAM;EACN,gBAAgB;GACd,aAAa;GACb,QAAQ;GACT;EACF;CACD,WAAW;GACR,UAAU,UAAU,YAAY;GAChC,UAAU,UAAU,SAAS;GAC7B,UAAU,UAAU,aAAa;GACjC,UAAU,UAAU,YAAY;GAChC,UAAU,UAAU,aAAa;GACjC,UAAU,UAAU,cAAc;GAClC,UAAU,UAAU,SAAS;GAC7B,UAAU,UAAU,aAAa;GACjC,UAAU,UAAU,eAAe;GACnC,UAAU,UAAU,aAAa;GACjC,UAAU,UAAU,SAAS;GAC7B,UAAU,UAAU,YAAY;GAChC,UAAU,UAAU,cAAc;GAClC,UAAU,UAAU,OAAO;GAC3B,UAAU,UAAU,aAAa;GACjC,UAAU,UAAU,aAAa;GACjC,UAAU,UAAU,eAAe;GACnC,UAAU,UAAU,WAAW;GAC/B,UAAU,UAAU,gBAAgB;GACpC,UAAU,UAAU,kBAAkB;GACtC,UAAU,UAAU,cAAc;GAClC,UAAU,UAAU,UAAU;GAC9B,UAAU,UAAU,eAAe;GACnC,UAAU,UAAU,eAAe;GACnC,UAAU,UAAU,SAAS;GAC7B,UAAU,UAAU,UAAU;GAC9B,UAAU,UAAU,WAAW;GAC/B,UAAU,UAAU,iBAAiB;GACrC,UAAU,UAAU,cAAc;GAClC,UAAU,UAAU,2BAA2B;GAC/C,UAAU,UAAU,kBAAkB;GACtC,UAAU,UAAU,aAAa;GACjC,UAAU,UAAU,OAAO;GAC3B,UAAU,UAAU,iBAAiB;GACrC,UAAU,UAAU,aAAa;EACnC;CACD,OAAO;CACP,WAAW;EACT,WAAW;GACT,mBAAmB;GACnB,uBAAuB;GACvB,UAAU;GACV,YAAY;GACZ,WAAW;GACX,YAAY;GACZ,YAAY;GACZ,aAAa;GACd;EACD,UAAU;GACR,cAAc;GACd,mBAAmB;GACpB;EACD,YAAY;GACV,WAAW;GACX,kBAAkB;GAClB,kBAAkB;GAClB,UAAU;GACV,MAAM;GACP;EACD,aAAa;GACX,mBAAmB;GACnB,mBAAmB;GACnB,cAAc;IACZ,eAAe;IACf,SAAS;IACT,SAAS;IACT,SAAS;IACT,cAAc;IACd,MAAM;IACN,eAAe;IACf,OAAO;IACP,eAAe;IAChB;GACF;EACD,aAAa;GACX,mBAAmB;GACnB,mBAAmB;GACnB,UAAU;GACV,WAAW;GACZ;EACD,aAAa;GACX,mBAAmB;GACnB,mBAAmB;GACnB,gBAAgB;GAChB,WAAW;GACX,UAAU;GACV,cAAc;GACd,YAAY;GACZ,OAAO;GACR;EACD,YAAY;GACV,SAAS;IACP,aAAa;IACb,UAAU;IACV,QAAQ;IACT;GACD,aAAa;IACX,KAAK;IACL,OAAO;IACP,MAAM;IACP;GACD,aAAa;IACX,KAAK;IACL,OAAO;IACP,MAAM;IACP;GACD,aAAa;GACb,YAAY;GACZ,aAAa;IACX,KAAK;IACL,OAAO;IACP,MAAM;IACP;GACD,eAAe;IACb,QAAQ;IACR,OAAO;IACR;GACD,cAAc;GACd,SAAS;IACP,MAAM;IACN,OAAO;IACR;GACD,SAAS;GACV;EACF;CACD,gBAAgB,EACd,SAAS;EACP,MAAM;EACN,MAAM;EACN,KAAK;EACL,KAAK;EACL,YAAY;EACZ,QAAQ;EACR,iBAAiB;EACjB,eAAe;EACf,iBAAiB;EACjB,SAAS;EACT,WAAW;EACX,SAAS;EACT,MAAM;EACP,EACF;CACF;AAED,0BAAe"}
|
|
1
|
+
{"version":3,"file":"messages-se.mjs","names":[],"sources":["../../src/locale/messages-se.ts"],"sourcesContent":["/**\n * Copyright (c) 2018-present, NDLA.\n *\n * This source code is licensed under the GPLv3 license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\nimport { contributorTypes } from \"@ndla/licenses\";\nimport { subjectCategories } from \"../model/SubjectCategories\";\nimport { subjectTypes } from \"../model/SubjectTypes\";\nimport { wordClass } from \"../model/WordClass\";\n\nconst messages = {\n ...Object.entries(contributorTypes).reduce<Record<string, string>>((acc, curr) => {\n acc[curr[0]] = curr[1].nb;\n return acc;\n }, {}),\n askNDLA: \"Jeara NDLA:s\",\n subjectCategories: {\n [subjectCategories.ACTIVE_SUBJECTS]: \"Doaimmas\",\n [subjectCategories.ARCHIVE_SUBJECTS]: \"Ii doaimmas šat\",\n [subjectCategories.BETA_SUBJECTS]: \"Boahttevaš\",\n [subjectCategories.OTHER]: \"Eará resurssat\",\n [subjectTypes.RESOURCE_COLLECTION]: \"Resursačoakkáldat\",\n },\n subjectTypes: {\n [subjectTypes.ARCHIVE_SUBJECT]: \"Arkivfag\",\n [subjectTypes.BETA_SUBJECT]: \"Betafága\",\n [subjectTypes.RESOURCE_COLLECTION]: \"Resursačoakkáldat\",\n [subjectTypes.SUBJECT]: \"Fága\",\n },\n meta: {\n description:\n \"Kvalitehta sihkarasttojuvvon ja nuvttá olamuttos neahttavuđot oahpponeavvut joatkkaskuvlla oahpahussii\",\n keywords: \"oahpponeavvu, fága, skuvla, joatkka, fidnohárjehalli, pensuma, fágaávnnas\",\n },\n logo: {\n altText: \"Našunála digitála oahppanarena\",\n },\n article: {\n lastUpdated: \"Maŋemusat ođastuvvon\",\n useContent: \"Čujuhit vai ođđasit atnit?\",\n authorsLabel_article: \"Dán lea/leat čállán \",\n authorsLabel_learningPath: \"Laget av\",\n authorsLabel_external: \"Denne lenken er lagt til av\",\n copyPageLinkCopied: \"Liŋka máŋgejuvvon\",\n copyHeaderLink: \"Máŋge liŋka bajilčállagii\",\n conjunction: \"ja\",\n supplierLabel_one: \"Vuoigatvuođaguoddi:\",\n supplierLabel_other: \"Vuoigatvuođaguoddit:\",\n printPage: \"Čálit teavstta\",\n access: {\n onlyTeacher: \"Dát resursa lea dušše olamuttus oahpaheddjiide geat leat Feide bokte sisaloggejuvvon.\",\n },\n footnotes: \"Fotnotar\",\n },\n external: {\n lastUpdated: \"Maŋemusat ođastuvvon\",\n },\n learningPath: {\n copiedFrom: \"Dette er en remiks av en annen læringsti\",\n lastUpdated: \"Maŋemusat ođastuvvon\",\n },\n license: {\n copyTitle: \"Máŋge gáldooainnu\",\n hasCopiedTitle: \"Máŋgejuvvon!\",\n embed: \"Hukse sisa\",\n embedCopied: \"Máŋgejuvvon sisahuksenkoda!\",\n copyText: {\n now: \"dál\",\n podcast: \"podkásta\",\n by: \"geas\",\n internet: \"[Interneahtta]. \",\n noTitle: \"Tihttela haga\",\n downloadedFrom: \"Gos vižžojuvvon: \",\n readDate: \"Lohkan: \",\n },\n download: \"Viečča\",\n openLink: \"Raba ođđa gilkoris\",\n tabs: {\n text: \"Teaksta\",\n images: \"Govat\",\n audio: \"Jietna\",\n video: \"Video\",\n h5p: \"H5P\",\n files: \"Fiillat\",\n embedlink: \"Sisahuksenliŋka\",\n concept: \"Čilgehusat\",\n gloss: \"Gloser\",\n podcast: \"Podkásta\",\n other: \"Eará sisdoallu\",\n },\n embedlink: {\n heading: \"Ná čájehat artihkkala eará sisdoalus\",\n description: \"Dát liŋka čájeha artihkkala konteavstta haga (fállu ja vuolleteaksta)\",\n copyTitle: \"Máŋge liŋkka\",\n hasCopiedTitle: \"Liŋka máŋgejuvvon\",\n },\n image: {\n rules: \"Njuolggadusat gova geavaheapmái:\",\n },\n images: {\n heading: \"Ná geavahat govaid ođđasit\",\n description: \"Muitte máŋget teavstta mii galgá mielddusin govvii go geavahat dan.\",\n rules: \"Njuolggadusat gova geavaheapmái\",\n itemImage: {\n ariaLabel: \"Raba gova ođđa siiddus\",\n zoomImageButtonLabel: \"Stuorit gova\",\n zoomOutImageButtonLabel: \"Unnit gova\",\n expandByline: \"Čájet byline\",\n minimizeByline: \"Čiega byline\",\n },\n licenseText: \"Dán govas lea liseansa\",\n restrictedUseText: \"Dán govas lea\",\n },\n text: {\n heading: \"Ná geavahat teavstta ođđasit\",\n description: \"Muitte čujuhit gáldui go nuppi teavstta anát.\",\n rules: \"Njuolggadusat teavstta geavaheapmái\",\n published: \"Almmuhanbeaivi\",\n licenseText: \"Dán teavsttas lea liseansa\",\n restrictedUseText: \"Dán teavsttas lea\",\n },\n audio: {\n heading: \"Ná geavahat jietnafiilla ođđasit\",\n description: \"Muitte máŋget teavstta mii galgá čuovvut jietnafiilla doppe gos geavahuvvo.\",\n rules: \"Njuolggadusat jietnafiilla geavaheapmái\",\n licenseText: \"Dán jietnafiillas lea liseansa\",\n restrictedUseText: \"Dán jietnafiillas lea\",\n },\n podcast: {\n heading: \"Ná geavahat podkásta ođđasit\",\n description: \"Muitte máŋget teavstta mii galgá čuovvut podkásta doppe gos geavahuvvo.\",\n rules: \"Njuolggadusat podkásta geavaheapmái\",\n licenseText: \"Dán podkasttas lea liseansa\",\n restrictedUseText: \"Dán podkasttas lea\",\n },\n video: {\n heading: \"Ná geavahat video ođđasit\",\n description: \"Muitte máŋget teavstta mii galgá čuovvut video doppe gos dat geavahuvvo.\",\n rules: \"Njuolggadusat video geavaheapmái\",\n itemImage: {\n ariaLabel: \"Raba video ođđa siiddus\",\n },\n licenseText: \"Dán videoi lea liseansa\",\n restrictedUseText: \"Dán videoi lea\",\n },\n other: {\n heading: \"Ná geavahat eará sisdoalu ođđasit\",\n description: \"Njuolggadusaid sisdoalu geavaheapmái gávnnat sisdoalloelemeanttas\",\n itemImage: {\n ariaLabel: \"Raba ođđa siiddus\",\n },\n },\n h5p: {\n heading: \"Ná geavahat H5P-sisdoalu ođđasit\",\n description: \"Njuolggadusaid sisdoalu geavaheapmái gávnnat H5P-elemeanttas\",\n rules: \"Njuolggadusat H5P geavaheapmái\",\n licenseText: \"Dát interaktiiva bargu (H5P) lea ožžon liseanssa\",\n restrictedUseText: \"Dát interaktiiva bargu (H5P) lea ožžon\",\n },\n concept: {\n heading: \"Ná geavahat čilgehusaid ođđasit\",\n description: \"Husk at innebygd innhald i ei forklaring kan ha ein anna lisens enn sjølve forklaringsteksten\",\n rules: \"Njuolggadusat čilgehusa geavaheapmái\",\n embedlink: {\n heading: \"Ná čájehat čilgehusa eará sisdoalus\",\n description: \"Dát liŋka čájeha čilgehusa konteavstta haga (fállu ja vuolleteaksta)\",\n copyTitle: \"Máŋge sisahuksenliŋkka\",\n hasCopiedTitle: \"Sisahuksenliŋka máŋgejuvvon\",\n },\n licenseText: \"Dán čilgehusas lea liseansa\",\n restrictedUseText: \"Dán čilgehusas lea\",\n },\n gloss: {\n heading: \"Movt geavahit ođđasit dajaldagaid\",\n description:\n \"Muitte ahte sisdoalus mii lea vuojuhuvvon ovtta gihppagii sáhttá leat eará liseansa go dušše jietnadat.\",\n rules: \"Glossa geavaheami njuolggadusat\",\n showOrHideExamples: \"Čájet dahje čiega ovdamearkkaid\",\n embedlink: {\n heading: \"Čájet jietnadaga eará sisdoaluin\",\n description: \"Dát liŋka čájeha teavstta konteavstta haga (fállu ja juolgeteaksta)\",\n copyTitle: \"Máŋge sisačálihanliŋkka\",\n hasCopiedTitle: \"Sajáiduhttinliŋka mángejuvvon\",\n },\n licenseText: \"Dán jietnadagas lea liseansa\",\n restrictedUseText: \"Dán jietnadagas lea\",\n },\n files: {\n heading: \"Ná geavahat fiillaid ođđasit\",\n description: \"Muitte máŋget teavsttaid mat galget čuovvut fiillaid doppe gos dat geavahuvvet.\",\n rules: \"Njuolggadusat fiilla geavaheapmái\",\n itemImage: {\n ariaLabel: \"Raba ođđa siiddus\",\n },\n },\n processed: \"Sisdoallu lea rievdaduvvon.\",\n },\n errorMessage: {\n title: \"Ops, juoga manai boastut\",\n description: \"Šállošit, boasttuvuohta čuožžilii.\",\n back: \"Mana ruovttoluotta\",\n goToFrontPage: \"Mana ovdasiidui\",\n },\n figure: {\n button: {\n alternative: \"Lonut siidui mas dulkojuvvo oaidninváttuid ektui\",\n original: \"Lonut orginála videoi\",\n },\n },\n contentTypes: {\n all: \"Buot\",\n article: \"Artikkel\",\n subject: \"Fága\",\n \"topic-article\": \"Fáddá\",\n learningpath: \"Oahppanbálggis\",\n \"learning-path\": \"Oahppanbálggis\",\n \"subject-material\": \"Fágaávdnasat\",\n \"tasks-and-activities\": \"Bihtát ja doaimmat\",\n \"source-material\": \"Gáldomateriála\",\n \"assessment-resources\": \"Árvoštallanresursa\",\n topic: \"Fáddá\",\n multidisciplinary: \"Fágaidrasttideaddji fáddá\",\n image: \"Govva\",\n concept: \"Čilgehus\",\n audio: \"Jietna\",\n podcast: \"Podkásta\",\n h5p: \"H5P\",\n video: \"Video\",\n missing: \"Ukjent\",\n external: \"Ekstern\",\n gloss: \"Glose\",\n programme: \"Programfag\",\n \"podcast-series\": \"Podkast-serie\",\n \"frontpage-article\": \"Om NDLA-artikkel\",\n },\n languages: {\n nb: \"Girjedárogiella\",\n nn: \"Ođđadárogiella\",\n en: \"Eŋgelasgiella\",\n fr: \"Fránskkagiella\",\n de: \"Duiskkagiella\",\n se: \"Davvisámegiella\",\n sma: \"Máttasámegiella\",\n es: \"Espánnjagiella\",\n zh: \"Kiinnágiella\",\n ukr: \"Ukrainsk\",\n unknown: \"Amas\",\n prefixChangeLanguage: \"Vállje giela\",\n },\n breadcrumb: {\n toFrontpage: \"NDLA ovdasiidu\",\n breadcrumb: \"Láibemoallobálggis\",\n },\n codeBlock: {\n copiedCode: \"Koda lea máŋgejuvvon vuorkátávvalii\",\n copyCode: \"Máŋge koda vuorkátávvalii\",\n },\n close: \"Govčča\",\n loading: \"Viežžá\",\n title: \"Tihttel\",\n cancel: \"Botkke\",\n save: \"Vurke\",\n email: \"E-boasta\",\n finished: \"Ferdig\",\n audio: {\n play: \"Čuojat\",\n pause: \"Boatkke\",\n progressBar: \"Fremdriftsindikator\",\n valueText: \"{{start}} av {{end}}\",\n controls: {\n forward15sec: \"Sirdde 15 sekundda ovddas\",\n rewind15sec: \"Sirdde 15 sekundda maŋos\",\n selectSpeed: \"Vállje čuojahanleahtu\",\n adjustVolume: \"Rievdat voluma\",\n },\n textVersion: {\n heading: \"Teakstavearšuvdna\",\n close: \"Govčča teakstavearšuvnna\",\n },\n readMoreDescriptionLabel: \"Čájet eanet\",\n readLessDescriptionLabel: \"Čájet unnit\",\n },\n source: \"Gáldu\",\n related: {\n title: \"Guoskevaš sisdoallu\",\n linkInfo: \"Neahttasiidu čuovvuvaččas\",\n showMore: \"Čájet eanet guoskevaš sisdoalu\",\n showLess: \"Čájet unnit\",\n },\n download: \"Viečča fiilla: \",\n factbox: {\n open: \"Raba fáktádoasa\",\n close: \"Govčča fáktádoasa\",\n },\n embed: {\n linkError: \"Ii sáhttán čájehit liŋkka.\",\n unsupported: `Embed {{type}} ii dorjojuvvo.`,\n embedError: `Šattai meattáhus {{type}} vieččadettiin. Geahččal viežžat siiddu ođđasit.`,\n type: {\n image: \"Govva\",\n video: \"Video\",\n audio: \"Jietna\",\n podcast: \"Podkast\",\n concept: \"Čilgehus\",\n h5p: \"H5P\",\n external: \"Olgguldas resursa\",\n gloss: \"Glose\",\n copyright: \"Tekst\",\n code: \"Kodeblokk\",\n disclaimer: \"UU-advarsel\",\n },\n },\n uuDisclaimer: { title: \"Tilgjengelighet\" },\n gloss: {\n examples: \"Ovdamearkkat\",\n showExamples: \"Vis eksempler\",\n wordClass: \"Sátneluohkká\",\n play: \"Čuojat glose\",\n transcriptions: {\n traditional: \"Árbevirolaš čállinvuohki\",\n pinyin: \"Pinyin\",\n },\n },\n wordClass: {\n [wordClass.adjective]: \"Adjektiivvat\",\n [wordClass.adverb]: \"Advearba\",\n [wordClass.properNoun]: \"Iežas namma\",\n [wordClass.auxiliary]: \"Veahkkesánit\",\n [wordClass.complement]: \"Dievasmahttin\",\n [wordClass.conjunction]: \"Konjunksjon\",\n [wordClass.coverb]: \"Koverb\",\n [wordClass.determiner]: \"Mearrádussánit\",\n [wordClass.interjection]: \"Ovttastuvvon\",\n [wordClass.quantifier]: \"Kvantor\",\n [wordClass.marker]: \"Sieván\",\n [wordClass.modalVerb]: \"Modálavearba\",\n [wordClass.measureWord]: \"Olahussátni\",\n [wordClass.noun]: \"Substantiivvat\",\n [wordClass[\"noun-zh\"]]: \"Nome\",\n [wordClass.nounPhrase]: \"Nomengihppu\",\n [wordClass.onomatopoeia]: \"Onomatopoetikon\",\n [wordClass.particle]: \"Partihkkalat\",\n [wordClass.demonstrative]: \"Čujuhusat\",\n [wordClass.personalPronoun]: \"Persovnnalaš pronomen\",\n [wordClass.preposition]: \"Preposišuvdna\",\n [wordClass.pronoun]: \"Pronomen\",\n [wordClass.questionWord]: \"Jearaldatsánit\",\n [wordClass.locationWord]: \"Báikesánit\",\n [wordClass.suffix]: \"Suffivssat\",\n [wordClass.numeral]: \"Lohkosánit\",\n [wordClass.timeWord]: \"Áigebágo\",\n [wordClass.timeExpression]: \"Áigemearka\",\n [wordClass.stativeVerb]: \"Dili-vearbba\",\n [wordClass.subordinatingConjunction]: \"Subjunkšuvdna\",\n [wordClass.exclamationWord]: \"Ii-rohkossátni\",\n [wordClass.expression]: \"Ovdanbuktin\",\n [wordClass.verb]: \"Vearbbat\",\n [wordClass.verbComplement]: \"Vearbasuorggideapmi\",\n [wordClass.verbObject]: \"Vearbaobjeakta\",\n },\n login: \"Čálit sisa\",\n component: {\n tagsInput: {\n clearTriggerLabel: \"Fjern alle emneknagger\",\n deleteTagTriggerLabel: \"Fjern emneknagg {{tag}}\",\n tagAdded: \"Emneknagg {{tag}} lagt til\",\n tagsPasted: \"Limte inn {{length}} emneknagger\",\n tagEdited: \"Redigerer emneknagg {{tag}}. Trykk enter for å lagre, eller esc for å avbryte.\",\n tagUpdated: \"Emneknagg oppdatert til {{tag}}\",\n tagDeleted: \"Emneknagg {{tag}} slettet\",\n tagSelected: \"Emneknagg {{tag}} valgt. Trykk enter for å redigere. Trykk backspace eller delete for å slette\",\n },\n combobox: {\n triggerLabel: \"Vis resultater\",\n clearTriggerLabel: \"Fjern valg\",\n },\n pagination: {\n rootLabel: \"Sidenavigering\",\n prevTriggerLabel: \"Forrige side\",\n nextTriggerLabel: \"Neste side\",\n lastPage: \"Siste side, side {{page}}\",\n page: \"Side {{page}}\",\n },\n imageSearch: {\n searchPlaceholder: \"Søk i bilder\",\n searchButtonTitle: \"Søk\",\n imagePreview: {\n creatorsLabel: \"Bilde\",\n license: \"Lisens\",\n caption: \"Bildetekst\",\n altText: \"Alt-tekst\",\n modelRelease: \"Modellklarert\",\n tags: \"Emneknagger\",\n checkboxLabel: \"Sett som metabilde\",\n close: \"Lukk\",\n useImageTitle: \"Bruk bildet\",\n },\n },\n audioSearch: {\n searchPlaceholder: \"Søk i lydfiler\",\n searchButtonTitle: \"Søk\",\n useAudio: \"Velg lyd\",\n noResults: \"Ingen resultater funnet\",\n },\n videoSearch: {\n searchPlaceholder: \"Søk i videoar\",\n searchButtonTitle: \"Søk\",\n loadMoreVideos: \"Last fleire videoar\",\n noResults: \"Ingen videoar funnet\",\n addVideo: \"Bruk video\",\n previewVideo: \"Forhåndsvis\",\n is360Video: \"VR-video\",\n close: \"Lukk\",\n },\n datePicker: {\n dayCell: {\n unavailable: \"Ikke tilgjengelig dato. {{date}}\",\n selected: \"Valgt dato. {{date}}\",\n select: \"Velg dato. {{date}}\",\n },\n nextTrigger: {\n day: \"Gå til neste måned\",\n month: \"Gå til neste år\",\n year: \"Gå til neste tiår\",\n },\n prevTrigger: {\n day: \"Gå til forrige måned\",\n month: \"Gå til forrige år\",\n year: \"Gå til forrige tiår\",\n },\n monthSelect: \"Velg måned\",\n yearSelect: \"Velg år\",\n viewTrigger: {\n day: \"Bytt til dagvisning\",\n month: \"Bytt til månedvisning\",\n year: \"Bytt til årvisning\",\n },\n presetTrigger: {\n single: \"Velg {{date}}\",\n range: \"Velg fra {{start}} til {{end}}\",\n },\n clearTrigger: \"Fjern valgte datoer\",\n trigger: {\n open: \"Åpne datovelger\",\n close: \"Lukk datovelger\",\n },\n content: \"Kalender\",\n },\n },\n richTextEditor: {\n tooltip: {\n bold: \"Fet ({{shortcut}})\",\n code: \"Kode ({{shortcut}})\",\n sub: \"Senket skrift ({{shortcut}})\",\n sup: \"Hevet skrift ({{shortcut}})\",\n underlined: \"Understreket ({{shortcut}})\",\n italic: \"Kursiv ({{shortcut}})\",\n \"numbered-list\": \"Nummerert liste ({{shortcut}})\",\n \"letter-list\": \"Bokstavliste ({{shortcut}})\",\n \"bulleted-list\": \"Punktliste ({{shortcut}})\",\n heading: \"Overskrift {{level}} ({{shortcut}})\",\n paragraph: \"Paragraf ({{shortcut}})\",\n section: \"Seksjon ({{shortcut}})\",\n link: \"Lenke ({{shortcut}})\",\n },\n },\n};\n\nexport default messages;\n"],"mappings":";;;;;;AAaA,MAAM,WAAW;CACf,GAAG,OAAO,QAAQ,iBAAiB,CAAC,QAAgC,KAAK,SAAS;AAChF,MAAI,KAAK,MAAM,KAAK,GAAG;AACvB,SAAO;IACN,EAAE,CAAC;CACN,SAAS;CACT,mBAAmB;GAChB,kBAAkB,kBAAkB;GACpC,kBAAkB,mBAAmB;GACrC,kBAAkB,gBAAgB;GAClC,kBAAkB,QAAQ;GAC1B,aAAa,sBAAsB;EACrC;CACD,cAAc;GACX,aAAa,kBAAkB;GAC/B,aAAa,eAAe;GAC5B,aAAa,sBAAsB;GACnC,aAAa,UAAU;EACzB;CACD,MAAM;EACJ,aACE;EACF,UAAU;EACX;CACD,MAAM,EACJ,SAAS,kCACV;CACD,SAAS;EACP,aAAa;EACb,YAAY;EACZ,sBAAsB;EACtB,2BAA2B;EAC3B,uBAAuB;EACvB,oBAAoB;EACpB,gBAAgB;EAChB,aAAa;EACb,mBAAmB;EACnB,qBAAqB;EACrB,WAAW;EACX,QAAQ,EACN,aAAa,yFACd;EACD,WAAW;EACZ;CACD,UAAU,EACR,aAAa,wBACd;CACD,cAAc;EACZ,YAAY;EACZ,aAAa;EACd;CACD,SAAS;EACP,WAAW;EACX,gBAAgB;EAChB,OAAO;EACP,aAAa;EACb,UAAU;GACR,KAAK;GACL,SAAS;GACT,IAAI;GACJ,UAAU;GACV,SAAS;GACT,gBAAgB;GAChB,UAAU;GACX;EACD,UAAU;EACV,UAAU;EACV,MAAM;GACJ,MAAM;GACN,QAAQ;GACR,OAAO;GACP,OAAO;GACP,KAAK;GACL,OAAO;GACP,WAAW;GACX,SAAS;GACT,OAAO;GACP,SAAS;GACT,OAAO;GACR;EACD,WAAW;GACT,SAAS;GACT,aAAa;GACb,WAAW;GACX,gBAAgB;GACjB;EACD,OAAO,EACL,OAAO,oCACR;EACD,QAAQ;GACN,SAAS;GACT,aAAa;GACb,OAAO;GACP,WAAW;IACT,WAAW;IACX,sBAAsB;IACtB,yBAAyB;IACzB,cAAc;IACd,gBAAgB;IACjB;GACD,aAAa;GACb,mBAAmB;GACpB;EACD,MAAM;GACJ,SAAS;GACT,aAAa;GACb,OAAO;GACP,WAAW;GACX,aAAa;GACb,mBAAmB;GACpB;EACD,OAAO;GACL,SAAS;GACT,aAAa;GACb,OAAO;GACP,aAAa;GACb,mBAAmB;GACpB;EACD,SAAS;GACP,SAAS;GACT,aAAa;GACb,OAAO;GACP,aAAa;GACb,mBAAmB;GACpB;EACD,OAAO;GACL,SAAS;GACT,aAAa;GACb,OAAO;GACP,WAAW,EACT,WAAW,2BACZ;GACD,aAAa;GACb,mBAAmB;GACpB;EACD,OAAO;GACL,SAAS;GACT,aAAa;GACb,WAAW,EACT,WAAW,qBACZ;GACF;EACD,KAAK;GACH,SAAS;GACT,aAAa;GACb,OAAO;GACP,aAAa;GACb,mBAAmB;GACpB;EACD,SAAS;GACP,SAAS;GACT,aAAa;GACb,OAAO;GACP,WAAW;IACT,SAAS;IACT,aAAa;IACb,WAAW;IACX,gBAAgB;IACjB;GACD,aAAa;GACb,mBAAmB;GACpB;EACD,OAAO;GACL,SAAS;GACT,aACE;GACF,OAAO;GACP,oBAAoB;GACpB,WAAW;IACT,SAAS;IACT,aAAa;IACb,WAAW;IACX,gBAAgB;IACjB;GACD,aAAa;GACb,mBAAmB;GACpB;EACD,OAAO;GACL,SAAS;GACT,aAAa;GACb,OAAO;GACP,WAAW,EACT,WAAW,qBACZ;GACF;EACD,WAAW;EACZ;CACD,cAAc;EACZ,OAAO;EACP,aAAa;EACb,MAAM;EACN,eAAe;EAChB;CACD,QAAQ,EACN,QAAQ;EACN,aAAa;EACb,UAAU;EACX,EACF;CACD,cAAc;EACZ,KAAK;EACL,SAAS;EACT,SAAS;EACT,iBAAiB;EACjB,cAAc;EACd,iBAAiB;EACjB,oBAAoB;EACpB,wBAAwB;EACxB,mBAAmB;EACnB,wBAAwB;EACxB,OAAO;EACP,mBAAmB;EACnB,OAAO;EACP,SAAS;EACT,OAAO;EACP,SAAS;EACT,KAAK;EACL,OAAO;EACP,SAAS;EACT,UAAU;EACV,OAAO;EACP,WAAW;EACX,kBAAkB;EAClB,qBAAqB;EACtB;CACD,WAAW;EACT,IAAI;EACJ,IAAI;EACJ,IAAI;EACJ,IAAI;EACJ,IAAI;EACJ,IAAI;EACJ,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"}
|
|
@@ -5,7 +5,8 @@ var SubjectCategories_exports = /* @__PURE__ */ __export({
|
|
|
5
5
|
ACTIVE_SUBJECTS: () => ACTIVE_SUBJECTS,
|
|
6
6
|
ARCHIVE_SUBJECTS: () => ARCHIVE_SUBJECTS,
|
|
7
7
|
BETA_SUBJECTS: () => BETA_SUBJECTS,
|
|
8
|
-
OTHER: () => OTHER
|
|
8
|
+
OTHER: () => OTHER,
|
|
9
|
+
subjectCategories: () => subjectCategories
|
|
9
10
|
});
|
|
10
11
|
/**
|
|
11
12
|
* Copyright (c) 2021-present, NDLA.
|
|
@@ -18,7 +19,13 @@ const ACTIVE_SUBJECTS = "active";
|
|
|
18
19
|
const ARCHIVE_SUBJECTS = "archive";
|
|
19
20
|
const BETA_SUBJECTS = "beta";
|
|
20
21
|
const OTHER = "otherResources";
|
|
22
|
+
const subjectCategories = {
|
|
23
|
+
ACTIVE_SUBJECTS,
|
|
24
|
+
ARCHIVE_SUBJECTS,
|
|
25
|
+
BETA_SUBJECTS,
|
|
26
|
+
OTHER
|
|
27
|
+
};
|
|
21
28
|
|
|
22
29
|
//#endregion
|
|
23
|
-
export { SubjectCategories_exports };
|
|
30
|
+
export { SubjectCategories_exports, subjectCategories };
|
|
24
31
|
//# sourceMappingURL=SubjectCategories.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SubjectCategories.mjs","names":[],"sources":["../../src/model/SubjectCategories.ts"],"sourcesContent":["/**\n * Copyright (c) 2021-present, NDLA.\n *\n * This source code is licensed under the GPLv3 license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\nexport const ACTIVE_SUBJECTS = \"active\";\nexport const ARCHIVE_SUBJECTS = \"archive\";\nexport const BETA_SUBJECTS = \"beta\";\nexport const OTHER = \"otherResources\";\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"SubjectCategories.mjs","names":[],"sources":["../../src/model/SubjectCategories.ts"],"sourcesContent":["/**\n * Copyright (c) 2021-present, NDLA.\n *\n * This source code is licensed under the GPLv3 license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\nexport const ACTIVE_SUBJECTS = \"active\";\nexport const ARCHIVE_SUBJECTS = \"archive\";\nexport const BETA_SUBJECTS = \"beta\";\nexport const OTHER = \"otherResources\";\n\nexport const subjectCategories = {\n ACTIVE_SUBJECTS,\n ARCHIVE_SUBJECTS,\n BETA_SUBJECTS,\n OTHER,\n};\n"],"mappings":";;;;;;;;;;;;;;;;;AAQA,MAAa,kBAAkB;AAC/B,MAAa,mBAAmB;AAChC,MAAa,gBAAgB;AAC7B,MAAa,QAAQ;AAErB,MAAa,oBAAoB;CAC/B;CACA;CACA;CACA;CACD"}
|
|
@@ -5,7 +5,8 @@ var SubjectTypes_exports = /* @__PURE__ */ __export({
|
|
|
5
5
|
ARCHIVE_SUBJECT: () => ARCHIVE_SUBJECT,
|
|
6
6
|
BETA_SUBJECT: () => BETA_SUBJECT,
|
|
7
7
|
RESOURCE_COLLECTION: () => RESOURCE_COLLECTION,
|
|
8
|
-
SUBJECT: () => SUBJECT
|
|
8
|
+
SUBJECT: () => SUBJECT,
|
|
9
|
+
subjectTypes: () => subjectTypes
|
|
9
10
|
});
|
|
10
11
|
/**
|
|
11
12
|
* Copyright (c) 2022-present, NDLA.
|
|
@@ -18,7 +19,13 @@ const BETA_SUBJECT = "betaSubject";
|
|
|
18
19
|
const SUBJECT = "subject";
|
|
19
20
|
const RESOURCE_COLLECTION = "resourceCollection";
|
|
20
21
|
const ARCHIVE_SUBJECT = "archiveSubject";
|
|
22
|
+
const subjectTypes = {
|
|
23
|
+
BETA_SUBJECT,
|
|
24
|
+
SUBJECT,
|
|
25
|
+
RESOURCE_COLLECTION,
|
|
26
|
+
ARCHIVE_SUBJECT
|
|
27
|
+
};
|
|
21
28
|
|
|
22
29
|
//#endregion
|
|
23
|
-
export { SubjectTypes_exports };
|
|
30
|
+
export { SubjectTypes_exports, subjectTypes };
|
|
24
31
|
//# sourceMappingURL=SubjectTypes.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SubjectTypes.mjs","names":[],"sources":["../../src/model/SubjectTypes.ts"],"sourcesContent":["/**\n * Copyright (c) 2022-present, NDLA.\n *\n * This source code is licensed under the GPLv3 license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\nexport const BETA_SUBJECT = \"betaSubject\";\nexport const SUBJECT = \"subject\";\nexport const RESOURCE_COLLECTION = \"resourceCollection\";\nexport const ARCHIVE_SUBJECT = \"archiveSubject\";\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"SubjectTypes.mjs","names":[],"sources":["../../src/model/SubjectTypes.ts"],"sourcesContent":["/**\n * Copyright (c) 2022-present, NDLA.\n *\n * This source code is licensed under the GPLv3 license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\nexport const BETA_SUBJECT = \"betaSubject\";\nexport const SUBJECT = \"subject\";\nexport const RESOURCE_COLLECTION = \"resourceCollection\";\nexport const ARCHIVE_SUBJECT = \"archiveSubject\";\n\nexport const subjectTypes = {\n BETA_SUBJECT,\n SUBJECT,\n RESOURCE_COLLECTION,\n ARCHIVE_SUBJECT,\n};\n"],"mappings":";;;;;;;;;;;;;;;;;AAQA,MAAa,eAAe;AAC5B,MAAa,UAAU;AACvB,MAAa,sBAAsB;AACnC,MAAa,kBAAkB;AAE/B,MAAa,eAAe;CAC1B;CACA;CACA;CACA;CACD"}
|
package/es/model/WordClass.mjs
CHANGED
package/es/model/index.mjs
CHANGED
|
@@ -4,7 +4,7 @@ import { SubjectTypes_exports } from "./SubjectTypes.mjs";
|
|
|
4
4
|
import { WordClass_exports } from "./WordClass.mjs";
|
|
5
5
|
|
|
6
6
|
//#region src/model/index.ts
|
|
7
|
-
const
|
|
7
|
+
const constants = {
|
|
8
8
|
contentTypes,
|
|
9
9
|
subjectCategories: SubjectCategories_exports,
|
|
10
10
|
subjectTypes: SubjectTypes_exports,
|
|
@@ -12,8 +12,7 @@ const model = {
|
|
|
12
12
|
resourceEmbedTypeMapping,
|
|
13
13
|
wordClass: WordClass_exports
|
|
14
14
|
};
|
|
15
|
-
var model_default = model;
|
|
16
15
|
|
|
17
16
|
//#endregion
|
|
18
|
-
export {
|
|
17
|
+
export { constants };
|
|
19
18
|
//# sourceMappingURL=index.mjs.map
|
package/es/model/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","names":[],"sources":["../../src/model/index.ts"],"sourcesContent":["/**\n * Copyright (c) 2017-present, NDLA.\n *\n * This source code is licensed under the GPLv3 license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\nimport { contentTypes, contentTypeMapping, resourceEmbedTypeMapping } from \"./ContentType\";\nimport * as subjectCategories from \"./SubjectCategories\";\nimport * as subjectTypes from \"./SubjectTypes\";\nimport * as wordClass from \"./WordClass\";\n\
|
|
1
|
+
{"version":3,"file":"index.mjs","names":[],"sources":["../../src/model/index.ts"],"sourcesContent":["/**\n * Copyright (c) 2017-present, NDLA.\n *\n * This source code is licensed under the GPLv3 license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\nimport { contentTypes, contentTypeMapping, resourceEmbedTypeMapping } from \"./ContentType\";\nimport * as subjectCategories from \"./SubjectCategories\";\nimport * as subjectTypes from \"./SubjectTypes\";\nimport * as wordClass from \"./WordClass\";\n\nexport const constants = {\n contentTypes,\n subjectCategories,\n subjectTypes,\n contentTypeMapping,\n resourceEmbedTypeMapping,\n wordClass,\n};\n"],"mappings":";;;;;;AAaA,MAAa,YAAY;CACvB;CACA;CACA;CACA;CACA;CACA;CACD"}
|
|
@@ -21,5 +21,5 @@ type Props = {
|
|
|
21
21
|
alt: string;
|
|
22
22
|
};
|
|
23
23
|
};
|
|
24
|
-
declare const AudioPlayer: ({ src, title, subtitle, speech, description, img, textVersion }: Props) => import("react/jsx-runtime").JSX.Element;
|
|
25
|
-
export
|
|
24
|
+
export declare const AudioPlayer: ({ src, title, subtitle, speech, description, img, textVersion }: Props) => import("react/jsx-runtime").JSX.Element;
|
|
25
|
+
export {};
|
|
@@ -99,7 +99,7 @@ const AudioPlayer = ({ src, title, subtitle, speech, description, img, textVersi
|
|
|
99
99
|
const [showFullDescription, setShowFullDescription] = (0, react.useState)(false);
|
|
100
100
|
const truncatedDescription = (0, react.useMemo)(() => description?.slice(0, DESCRIPTION_MAX_LENGTH), [description]);
|
|
101
101
|
const textDescriptionId = (0, react.useId)();
|
|
102
|
-
if (speech) return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_SpeechControl.
|
|
102
|
+
if (speech) return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_SpeechControl.SpeechControl, {
|
|
103
103
|
src,
|
|
104
104
|
title
|
|
105
105
|
});
|
|
@@ -141,7 +141,7 @@ const AudioPlayer = ({ src, title, subtitle, speech, description, img, textVersi
|
|
|
141
141
|
!!textVersion && !!img && textVersionButton
|
|
142
142
|
]
|
|
143
143
|
})] }),
|
|
144
|
-
/* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_Controls.
|
|
144
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_Controls.Controls, {
|
|
145
145
|
src,
|
|
146
146
|
title
|
|
147
147
|
}),
|
|
@@ -157,8 +157,7 @@ const AudioPlayer = ({ src, title, subtitle, speech, description, img, textVersi
|
|
|
157
157
|
})
|
|
158
158
|
] });
|
|
159
159
|
};
|
|
160
|
-
var AudioPlayer_default = AudioPlayer;
|
|
161
160
|
|
|
162
161
|
//#endregion
|
|
163
|
-
exports.
|
|
162
|
+
exports.AudioPlayer = AudioPlayer;
|
|
164
163
|
//# sourceMappingURL=AudioPlayer.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AudioPlayer.js","names":["Button","SpeechControl","SafeLink","Heading","Text","Controls"],"sources":["../../src/AudioPlayer/AudioPlayer.tsx"],"sourcesContent":["/**\n * Copyright (c) 2017-present, NDLA.\n *\n * This source code is licensed under the GPLv3 license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\nimport { type ReactNode, useId, useMemo, useState } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { Heading, Text, Button } from \"@ndla/primitives\";\nimport { SafeLink } from \"@ndla/safelink\";\nimport { styled } from \"@ndla/styled-system/jsx\";\nimport Controls from \"./Controls\";\nimport SpeechControl from \"./SpeechControl\";\n\n// TODO: Could the audio metadata be more tightly coupled to the audio player?\n\nconst AudioPlayerWrapper = styled(\"div\", {\n base: {\n border: \"1px solid\",\n borderColor: \"stroke.default\",\n borderRadius: \"xsmall\",\n boxShadow: \"full\",\n marginBlockEnd: \"4xsmall\",\n overflow: \"hidden\",\n },\n});\n\nconst InfoWrapper = styled(\"div\", {\n base: {\n display: \"flex\",\n tabletWideDown: {\n display: \"block\",\n },\n },\n});\n\nconst ImageWrapper = styled(\"div\", {\n base: {\n display: \"flex\",\n alignItems: \"center\",\n flex: \"1 0 auto\",\n width: \"surface.4xsmall\",\n height: \"surface.4xsmall\",\n overflow: \"hidden\",\n \"& img\": {\n width: \"100%\",\n height: \"100%\",\n objectFit: \"cover\",\n },\n desktop: {\n width: \"260px\",\n height: \"260px\",\n },\n tabletWideDown: {\n maxHeight: \"surface.small\",\n maxWidth: \"100%\",\n width: \"100%\",\n height: \"auto\",\n },\n },\n});\n\nconst TextWrapper = styled(\"div\", {\n base: {\n display: \"flex\",\n alignItems: \"flex-start\",\n flexDirection: \"column\",\n gap: \"xsmall\",\n padding: \"xsmall\",\n width: \"100%\",\n \"&[data-has-image='true']\": {\n tablet: {\n paddingBlock: \"xsmall\",\n paddingInline: \"medium\",\n },\n },\n },\n});\n\nconst TitleWrapper = styled(\"div\", {\n base: {\n display: \"flex\",\n flexDirection: \"column\",\n gap: \"xsmall\",\n fontFamily: \"sans\",\n tabletWide: {\n width: \"100%\",\n flexDirection: \"row\",\n justifyContent: \"space-between\",\n },\n },\n});\n\nconst TextVersionWrapper = styled(\"div\", {\n base: {\n display: \"flex\",\n flexDirection: \"column\",\n gap: \"xsmall\",\n borderBlockStart: \"1px solid\",\n borderColor: \"stroke.default\",\n paddingBlock: \"medium\",\n paddingInline: \"xsmall\",\n tablet: {\n paddingInline: \"medium\",\n },\n },\n});\n\nconst TextVersionText = styled(\"div\", {\n base: {\n maxWidth: \"surface.xlarge\",\n \"& span > *\": {\n whiteSpace: \"pre-wrap\",\n },\n \"& p:not(:first-child):not(:last-child)\": {\n marginBlock: \"small\",\n },\n '& p[data-align=\"center\"]': {\n textAlign: \"center\",\n },\n '& p:has(span[dir=\"rtl\"])': {\n direction: \"rtl\",\n },\n },\n});\n\nconst TextVersionButton = styled(Button, {\n base: {\n alignSelf: \"flex-start\",\n },\n});\n\nconst ShowMoreButton = styled(Button, {\n base: {\n marginInlineStart: \"3xsmall\",\n },\n});\n\nconst DESCRIPTION_MAX_LENGTH = 200;\n\ntype Props = {\n src: string;\n title: string;\n subtitle?: {\n title: string;\n url?: string;\n };\n speech?: boolean;\n description?: string;\n textVersion?: ReactNode;\n img?: {\n url: string;\n alt: string;\n };\n};\n\
|
|
1
|
+
{"version":3,"file":"AudioPlayer.js","names":["Button","SpeechControl","SafeLink","Heading","Text","Controls"],"sources":["../../src/AudioPlayer/AudioPlayer.tsx"],"sourcesContent":["/**\n * Copyright (c) 2017-present, NDLA.\n *\n * This source code is licensed under the GPLv3 license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\nimport { type ReactNode, useId, useMemo, useState } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { Heading, Text, Button } from \"@ndla/primitives\";\nimport { SafeLink } from \"@ndla/safelink\";\nimport { styled } from \"@ndla/styled-system/jsx\";\nimport { Controls } from \"./Controls\";\nimport { SpeechControl } from \"./SpeechControl\";\n\n// TODO: Could the audio metadata be more tightly coupled to the audio player?\n\nconst AudioPlayerWrapper = styled(\"div\", {\n base: {\n border: \"1px solid\",\n borderColor: \"stroke.default\",\n borderRadius: \"xsmall\",\n boxShadow: \"full\",\n marginBlockEnd: \"4xsmall\",\n overflow: \"hidden\",\n },\n});\n\nconst InfoWrapper = styled(\"div\", {\n base: {\n display: \"flex\",\n tabletWideDown: {\n display: \"block\",\n },\n },\n});\n\nconst ImageWrapper = styled(\"div\", {\n base: {\n display: \"flex\",\n alignItems: \"center\",\n flex: \"1 0 auto\",\n width: \"surface.4xsmall\",\n height: \"surface.4xsmall\",\n overflow: \"hidden\",\n \"& img\": {\n width: \"100%\",\n height: \"100%\",\n objectFit: \"cover\",\n },\n desktop: {\n width: \"260px\",\n height: \"260px\",\n },\n tabletWideDown: {\n maxHeight: \"surface.small\",\n maxWidth: \"100%\",\n width: \"100%\",\n height: \"auto\",\n },\n },\n});\n\nconst TextWrapper = styled(\"div\", {\n base: {\n display: \"flex\",\n alignItems: \"flex-start\",\n flexDirection: \"column\",\n gap: \"xsmall\",\n padding: \"xsmall\",\n width: \"100%\",\n \"&[data-has-image='true']\": {\n tablet: {\n paddingBlock: \"xsmall\",\n paddingInline: \"medium\",\n },\n },\n },\n});\n\nconst TitleWrapper = styled(\"div\", {\n base: {\n display: \"flex\",\n flexDirection: \"column\",\n gap: \"xsmall\",\n fontFamily: \"sans\",\n tabletWide: {\n width: \"100%\",\n flexDirection: \"row\",\n justifyContent: \"space-between\",\n },\n },\n});\n\nconst TextVersionWrapper = styled(\"div\", {\n base: {\n display: \"flex\",\n flexDirection: \"column\",\n gap: \"xsmall\",\n borderBlockStart: \"1px solid\",\n borderColor: \"stroke.default\",\n paddingBlock: \"medium\",\n paddingInline: \"xsmall\",\n tablet: {\n paddingInline: \"medium\",\n },\n },\n});\n\nconst TextVersionText = styled(\"div\", {\n base: {\n maxWidth: \"surface.xlarge\",\n \"& span > *\": {\n whiteSpace: \"pre-wrap\",\n },\n \"& p:not(:first-child):not(:last-child)\": {\n marginBlock: \"small\",\n },\n '& p[data-align=\"center\"]': {\n textAlign: \"center\",\n },\n '& p:has(span[dir=\"rtl\"])': {\n direction: \"rtl\",\n },\n },\n});\n\nconst TextVersionButton = styled(Button, {\n base: {\n alignSelf: \"flex-start\",\n },\n});\n\nconst ShowMoreButton = styled(Button, {\n base: {\n marginInlineStart: \"3xsmall\",\n },\n});\n\nconst DESCRIPTION_MAX_LENGTH = 200;\n\ntype Props = {\n src: string;\n title: string;\n subtitle?: {\n title: string;\n url?: string;\n };\n speech?: boolean;\n description?: string;\n textVersion?: ReactNode;\n img?: {\n url: string;\n alt: string;\n };\n};\n\nexport const AudioPlayer = ({ src, title, subtitle, speech, description, img, textVersion }: Props) => {\n const { t } = useTranslation();\n const [showTextVersion, setShowTextVersion] = useState(false);\n const [showFullDescription, setShowFullDescription] = useState(false);\n const truncatedDescription = useMemo(() => description?.slice(0, DESCRIPTION_MAX_LENGTH), [description]);\n const textDescriptionId = useId();\n\n if (speech) {\n return <SpeechControl src={src} title={title} />;\n }\n\n const toggleTextVersion = () => {\n setShowTextVersion((curr) => !curr);\n };\n\n const textVersionButton = (\n <TextVersionButton\n variant=\"secondary\"\n aria-expanded={showTextVersion}\n aria-controls={textDescriptionId}\n size=\"small\"\n onClick={toggleTextVersion}\n >\n {t(showTextVersion ? \"audio.textVersion.close\" : \"audio.textVersion.heading\")}\n </TextVersionButton>\n );\n\n return (\n <AudioPlayerWrapper>\n <InfoWrapper>\n {!!img && (\n <ImageWrapper>\n <img src={img.url} alt={img.alt} />\n </ImageWrapper>\n )}\n <TextWrapper data-has-image={!!img}>\n <TitleWrapper>\n <div>\n {subtitle?.url ? <SafeLink to={subtitle.url}>{subtitle.title}</SafeLink> : subtitle?.title}\n <Heading asChild consumeCss textStyle=\"title.large\">\n <h3>{title}</h3>\n </Heading>\n </div>\n {!!textVersion && !img && textVersionButton}\n </TitleWrapper>\n {!!description && (\n <Text textStyle=\"body.medium\">\n {showFullDescription || description.length < DESCRIPTION_MAX_LENGTH\n ? description\n : `${truncatedDescription}...`}\n {description.length > DESCRIPTION_MAX_LENGTH && (\n <ShowMoreButton variant=\"link\" onClick={() => setShowFullDescription((p) => !p)}>\n {t(`audio.${showFullDescription ? \"readLessDescriptionLabel\" : \"readMoreDescriptionLabel\"}`)}\n </ShowMoreButton>\n )}\n </Text>\n )}\n {!!textVersion && !!img && textVersionButton}\n </TextWrapper>\n </InfoWrapper>\n <Controls src={src} title={title} />\n {!!textVersion && (\n <TextVersionWrapper id={textDescriptionId} hidden={!showTextVersion}>\n <Heading asChild textStyle=\"title.medium\" consumeCss>\n <h4>{t(\"audio.textVersion.heading\")}</h4>\n </Heading>\n <TextVersionText>{textVersion}</TextVersionText>\n </TextVersionWrapper>\n )}\n </AudioPlayerWrapper>\n );\n};\n"],"mappings":"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"}
|
|
@@ -9,5 +9,5 @@ interface Props {
|
|
|
9
9
|
src: string;
|
|
10
10
|
title: string;
|
|
11
11
|
}
|
|
12
|
-
declare const Controls: ({ src, title }: Props) => import("react/jsx-runtime").JSX.Element;
|
|
13
|
-
export
|
|
12
|
+
export declare const Controls: ({ src, title }: Props) => import("react/jsx-runtime").JSX.Element;
|
|
13
|
+
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Controls.js","names":["IconButton","Text","Button","SelectRoot","SliderControl","PopoverContent","currentTime","Replay15Line","PauseLine","PlayFill","Forward15Line","SliderRoot","SliderLabel","SliderTrack","SliderRange","SliderThumb","SliderHiddenInput","FieldRoot","SelectLabel","SelectControl","SelectTrigger","SelectContent","SelectItem","SelectItemText","SelectItemIndicator","CheckLine","PopoverRoot","PopoverTrigger","VolumeUpFill"],"sources":["../../src/AudioPlayer/Controls.tsx"],"sourcesContent":["/**\n * Copyright (c) 2021-present, NDLA.\n *\n * This source code is licensed under the GPLv3 license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\nimport { useEffect, useRef, useState } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { type SliderValueChangeDetails, createListCollection } from \"@ark-ui/react\";\nimport { Replay15Line, Forward15Line, PlayFill, PauseLine, VolumeUpFill, CheckLine } from \"@ndla/icons\";\nimport {\n Button,\n FieldRoot,\n IconButton,\n PopoverContent,\n PopoverRoot,\n PopoverTrigger,\n SelectContent,\n SelectControl,\n SelectItem,\n SelectItemIndicator,\n SelectItemText,\n SelectLabel,\n SelectRoot,\n SelectTrigger,\n SliderControl,\n SliderHiddenInput,\n SliderLabel,\n SliderRange,\n SliderRoot,\n SliderThumb,\n SliderTrack,\n Text,\n} from \"@ndla/primitives\";\nimport { styled } from \"@ndla/styled-system/jsx\";\n\nconst ControlsWrapper = styled(\"div\", {\n base: {\n borderBlockStart: \"1px solid\",\n borderColor: \"stroke.default\",\n borderBottomRadius: \"xsmall\",\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n background: \"background.default\",\n gap: \"xsmall\",\n paddingBlock: \"xsmall\",\n paddingInline: \"medium\",\n tabletWideDown: {\n display: \"grid\",\n paddingBlock: \"xsmall\",\n paddingInline: \"xsmall\",\n gridTemplateColumns: \"1fr repeat(5, auto) 1fr\",\n gridTemplateAreas: `\n \"track track track track track track track\"\n \". speed backwards play forwards volume .\"\n`,\n },\n mobileWideDown: {\n columnGap: \"3xsmall\",\n },\n },\n});\n\nconst PlayButton = styled(IconButton, {\n base: {\n gridArea: \"play\",\n },\n});\n\nconst Forward15SecButton = styled(IconButton, {\n base: {\n gridArea: \"forwards\",\n },\n});\n\nconst Back15SecButton = styled(IconButton, {\n base: {\n gridArea: \"backwards\",\n },\n});\n\nconst ProgressWrapper = styled(\"div\", {\n base: {\n flex: \"1\",\n display: \"flex\",\n alignItems: \"center\",\n gap: \"xxsmall\",\n gridArea: \"track\",\n paddingBlock: \"xsmall\",\n mobileDown: {\n paddingInline: \"xsmall\",\n },\n },\n});\n\nconst StyledText = styled(Text, {\n base: {\n minWidth: \"xxlarge\",\n flexShrink: \"0\",\n textAlign: \"center\",\n },\n});\n\nconst VolumeButton = styled(IconButton, {\n base: {\n gridArea: \"volume\",\n },\n});\n\nconst SpeedButton = styled(Button, {\n base: {\n paddingBlock: \"auto\",\n paddingInline: \"auto\",\n maxWidth: \"xxlarge\",\n maxHeight: \"xxlarge\",\n minWidth: \"xxlarge\",\n minHeight: \"xxlarge\",\n \"& span\": {\n flex: \"1\",\n },\n },\n});\n\nconst StyledSelectRoot = styled(SelectRoot<string>, {\n base: {\n gridArea: \"speed\",\n },\n});\n\nconst StyledSliderControl = styled(SliderControl, {\n base: {\n height: \"surface.3xsmall\",\n minWidth: \"small\",\n },\n});\n\nconst StyledPopoverContent = styled(PopoverContent, {\n base: {\n paddingInline: \"small\",\n },\n});\n\nconst formatTime = (seconds: number) => {\n const minutes = Math.floor(seconds / 60);\n const currentSeconds = seconds % 60;\n\n const formattedSeconds = currentSeconds < 10 ? `0${currentSeconds}` : currentSeconds;\n return `${minutes}:${formattedSeconds}`;\n};\n\nconst speedValues = createListCollection({ items: [\"0.5\", \"0.75\", \"1\", \"1.25\", \"1.5\", \"1.75\", \"2\"] });\n\ninterface Props {\n src: string;\n title: string;\n}\n\nconst Controls = ({ src, title }: Props) => {\n const { t } = useTranslation();\n const [speedValue, setSpeedValue] = useState(1);\n const [volumeValue, setVolumeValue] = useState(100);\n const [currentTime, setCurrentTime] = useState(0);\n const [remainingTime, setRemainingTime] = useState(0);\n const [playing, setPlaying] = useState(false);\n const audioRef = useRef<HTMLAudioElement>(null);\n\n useEffect(() => {\n if (audioRef.current) {\n audioRef.current.playbackRate = speedValue;\n }\n }, [speedValue]);\n\n useEffect(() => {\n if (audioRef.current) {\n const audioElement = audioRef.current;\n const handleTimeUpdate = () => {\n const { currentTime, duration } = audioElement;\n setCurrentTime(Math.round(currentTime));\n setRemainingTime(Math.round(duration - currentTime));\n };\n\n const handleLoadedMetaData = () => {\n const { currentTime, duration } = audioElement;\n setCurrentTime(Math.round(currentTime));\n setRemainingTime(Math.round(duration - currentTime));\n };\n\n const handleTimeEnded = () => {\n setPlaying(false);\n };\n\n audioElement.addEventListener(\"timeupdate\", handleTimeUpdate);\n audioElement.addEventListener(\"loadedmetadata\", handleLoadedMetaData);\n audioElement.addEventListener(\"ended\", handleTimeEnded);\n return () => {\n audioElement.removeEventListener(\"timeupdate\", handleTimeUpdate);\n audioElement.removeEventListener(\"loadedmetadata\", handleLoadedMetaData);\n audioElement.removeEventListener(\"ended\", handleTimeEnded);\n };\n }\n }, []);\n\n const togglePlay = () => {\n if (audioRef.current) {\n const audioElement = audioRef.current;\n if (!playing) {\n audioElement.play();\n } else {\n audioElement.pause();\n }\n setPlaying(!playing);\n }\n };\n\n const onSeekSeconds = (seconds: number) => {\n if (audioRef.current) {\n audioRef.current.currentTime += seconds;\n }\n };\n\n const handleSliderChange = (details: SliderValueChangeDetails) => {\n const newValue = details.value[0];\n if (audioRef.current && newValue != null && !isNaN(newValue)) {\n audioRef.current.currentTime = details.value[0];\n }\n };\n\n const handleVolumeSliderChange = (details: SliderValueChangeDetails) => {\n if (audioRef.current) {\n audioRef.current.volume = details.value[0] / 100;\n setVolumeValue(details.value[0]);\n }\n };\n\n return (\n <div>\n {/* TODO: We should tie this up to the textual description somehow */}\n {/* eslint-disable-next-line jsx-a11y/media-has-caption */}\n <audio ref={audioRef} src={src} title={title} preload=\"metadata\" />\n <ControlsWrapper>\n <Back15SecButton\n variant=\"tertiary\"\n title={t(\"audio.controls.rewind15sec\")}\n aria-label={t(\"audio.controls.rewind15sec\")}\n onClick={() => onSeekSeconds(-15)}\n >\n <Replay15Line />\n </Back15SecButton>\n <PlayButton aria-label={t(playing ? t(\"audio.pause\") : t(\"audio.play\"))} variant=\"primary\" onClick={togglePlay}>\n {playing ? <PauseLine /> : <PlayFill />}\n </PlayButton>\n <Forward15SecButton\n variant=\"tertiary\"\n title={t(\"audio.controls.forward15sec\")}\n aria-label={t(\"audio.controls.forward15sec\")}\n onClick={() => onSeekSeconds(15)}\n >\n <Forward15Line />\n </Forward15SecButton>\n <ProgressWrapper>\n <StyledText textStyle=\"label.medium\" asChild consumeCss>\n <div>{formatTime(currentTime)}</div>\n </StyledText>\n <SliderRoot\n value={[audioRef.current?.currentTime || 0]}\n defaultValue={[0]}\n step={1}\n max={Math.round(audioRef.current?.duration || 0)}\n onValueChange={handleSliderChange}\n getAriaValueText={(value) =>\n t(\"audio.valueText\", {\n start: formatTime(Math.round(value.value)),\n end: formatTime(Math.round(audioRef.current?.duration ?? 0)),\n })\n }\n >\n <SliderLabel srOnly>{t(\"audio.progressBar\")}</SliderLabel>\n <SliderControl>\n <SliderTrack>\n <SliderRange />\n </SliderTrack>\n <SliderThumb index={0}>\n <SliderHiddenInput />\n </SliderThumb>\n </SliderControl>\n </SliderRoot>\n <StyledText textStyle=\"label.medium\" asChild consumeCss>\n <div>-{formatTime(remainingTime)}</div>\n </StyledText>\n </ProgressWrapper>\n <FieldRoot>\n <StyledSelectRoot\n collection={speedValues}\n value={[speedValue.toString()]}\n onValueChange={(details) => setSpeedValue(parseFloat(details.value[0]))}\n positioning={{ placement: \"top\" }}\n >\n <SelectLabel srOnly>{t(\"audio.controls.selectSpeed\")}</SelectLabel>\n <SelectControl>\n <SelectTrigger asChild>\n <SpeedButton\n variant=\"tertiary\"\n title={t(\"audio.controls.selectSpeed\")}\n aria-label={t(\"audio.controls.selectSpeed\")}\n >\n <span>{`${speedValue}x`}</span>\n </SpeedButton>\n </SelectTrigger>\n </SelectControl>\n <SelectContent>\n {speedValues.items.map((speed) => (\n <SelectItem key={speed} item={speed}>\n <SelectItemText>{speed}x</SelectItemText>\n <SelectItemIndicator>\n <CheckLine />\n </SelectItemIndicator>\n </SelectItem>\n ))}\n </SelectContent>\n </StyledSelectRoot>\n </FieldRoot>\n <PopoverRoot positioning={{ placement: \"top\" }}>\n <PopoverTrigger asChild>\n <VolumeButton variant=\"tertiary\" aria-label={t(\"audio.controls.adjustVolume\")}>\n <VolumeUpFill />\n </VolumeButton>\n </PopoverTrigger>\n <StyledPopoverContent>\n <SliderRoot\n orientation=\"vertical\"\n value={[volumeValue]}\n min={0}\n max={100}\n defaultValue={[100]}\n step={1}\n onValueChange={handleVolumeSliderChange}\n >\n <SliderLabel srOnly>{t(\"audio.controls.adjustVolume\")}</SliderLabel>\n <StyledSliderControl>\n <SliderTrack>\n <SliderRange />\n </SliderTrack>\n <SliderThumb index={0}>\n <SliderHiddenInput />\n </SliderThumb>\n </StyledSliderControl>\n </SliderRoot>\n </StyledPopoverContent>\n </PopoverRoot>\n </ControlsWrapper>\n </div>\n );\n};\n\nexport default Controls;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Controls.js","names":["IconButton","Text","Button","SelectRoot","SliderControl","PopoverContent","currentTime","Replay15Line","PauseLine","PlayFill","Forward15Line","SliderRoot","SliderLabel","SliderTrack","SliderRange","SliderThumb","SliderHiddenInput","FieldRoot","SelectLabel","SelectControl","SelectTrigger","SelectContent","SelectItem","SelectItemText","SelectItemIndicator","CheckLine","PopoverRoot","PopoverTrigger","VolumeUpFill"],"sources":["../../src/AudioPlayer/Controls.tsx"],"sourcesContent":["/**\n * Copyright (c) 2021-present, NDLA.\n *\n * This source code is licensed under the GPLv3 license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\nimport { useEffect, useRef, useState } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { type SliderValueChangeDetails, createListCollection } from \"@ark-ui/react\";\nimport { Replay15Line, Forward15Line, PlayFill, PauseLine, VolumeUpFill, CheckLine } from \"@ndla/icons\";\nimport {\n Button,\n FieldRoot,\n IconButton,\n PopoverContent,\n PopoverRoot,\n PopoverTrigger,\n SelectContent,\n SelectControl,\n SelectItem,\n SelectItemIndicator,\n SelectItemText,\n SelectLabel,\n SelectRoot,\n SelectTrigger,\n SliderControl,\n SliderHiddenInput,\n SliderLabel,\n SliderRange,\n SliderRoot,\n SliderThumb,\n SliderTrack,\n Text,\n} from \"@ndla/primitives\";\nimport { styled } from \"@ndla/styled-system/jsx\";\n\nconst ControlsWrapper = styled(\"div\", {\n base: {\n borderBlockStart: \"1px solid\",\n borderColor: \"stroke.default\",\n borderBottomRadius: \"xsmall\",\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n background: \"background.default\",\n gap: \"xsmall\",\n paddingBlock: \"xsmall\",\n paddingInline: \"medium\",\n tabletWideDown: {\n display: \"grid\",\n paddingBlock: \"xsmall\",\n paddingInline: \"xsmall\",\n gridTemplateColumns: \"1fr repeat(5, auto) 1fr\",\n gridTemplateAreas: `\n \"track track track track track track track\"\n \". speed backwards play forwards volume .\"\n`,\n },\n mobileWideDown: {\n columnGap: \"3xsmall\",\n },\n },\n});\n\nconst PlayButton = styled(IconButton, {\n base: {\n gridArea: \"play\",\n },\n});\n\nconst Forward15SecButton = styled(IconButton, {\n base: {\n gridArea: \"forwards\",\n },\n});\n\nconst Back15SecButton = styled(IconButton, {\n base: {\n gridArea: \"backwards\",\n },\n});\n\nconst ProgressWrapper = styled(\"div\", {\n base: {\n flex: \"1\",\n display: \"flex\",\n alignItems: \"center\",\n gap: \"xxsmall\",\n gridArea: \"track\",\n paddingBlock: \"xsmall\",\n mobileDown: {\n paddingInline: \"xsmall\",\n },\n },\n});\n\nconst StyledText = styled(Text, {\n base: {\n minWidth: \"xxlarge\",\n flexShrink: \"0\",\n textAlign: \"center\",\n },\n});\n\nconst VolumeButton = styled(IconButton, {\n base: {\n gridArea: \"volume\",\n },\n});\n\nconst SpeedButton = styled(Button, {\n base: {\n paddingBlock: \"auto\",\n paddingInline: \"auto\",\n maxWidth: \"xxlarge\",\n maxHeight: \"xxlarge\",\n minWidth: \"xxlarge\",\n minHeight: \"xxlarge\",\n \"& span\": {\n flex: \"1\",\n },\n },\n});\n\nconst StyledSelectRoot = styled(SelectRoot<string>, {\n base: {\n gridArea: \"speed\",\n },\n});\n\nconst StyledSliderControl = styled(SliderControl, {\n base: {\n height: \"surface.3xsmall\",\n minWidth: \"small\",\n },\n});\n\nconst StyledPopoverContent = styled(PopoverContent, {\n base: {\n paddingInline: \"small\",\n },\n});\n\nconst formatTime = (seconds: number) => {\n const minutes = Math.floor(seconds / 60);\n const currentSeconds = seconds % 60;\n\n const formattedSeconds = currentSeconds < 10 ? `0${currentSeconds}` : currentSeconds;\n return `${minutes}:${formattedSeconds}`;\n};\n\nconst speedValues = createListCollection({ items: [\"0.5\", \"0.75\", \"1\", \"1.25\", \"1.5\", \"1.75\", \"2\"] });\n\ninterface Props {\n src: string;\n title: string;\n}\n\nexport const Controls = ({ src, title }: Props) => {\n const { t } = useTranslation();\n const [speedValue, setSpeedValue] = useState(1);\n const [volumeValue, setVolumeValue] = useState(100);\n const [currentTime, setCurrentTime] = useState(0);\n const [remainingTime, setRemainingTime] = useState(0);\n const [playing, setPlaying] = useState(false);\n const audioRef = useRef<HTMLAudioElement>(null);\n\n useEffect(() => {\n if (audioRef.current) {\n audioRef.current.playbackRate = speedValue;\n }\n }, [speedValue]);\n\n useEffect(() => {\n if (audioRef.current) {\n const audioElement = audioRef.current;\n const handleTimeUpdate = () => {\n const { currentTime, duration } = audioElement;\n setCurrentTime(Math.round(currentTime));\n setRemainingTime(Math.round(duration - currentTime));\n };\n\n const handleLoadedMetaData = () => {\n const { currentTime, duration } = audioElement;\n setCurrentTime(Math.round(currentTime));\n setRemainingTime(Math.round(duration - currentTime));\n };\n\n const handleTimeEnded = () => {\n setPlaying(false);\n };\n\n audioElement.addEventListener(\"timeupdate\", handleTimeUpdate);\n audioElement.addEventListener(\"loadedmetadata\", handleLoadedMetaData);\n audioElement.addEventListener(\"ended\", handleTimeEnded);\n return () => {\n audioElement.removeEventListener(\"timeupdate\", handleTimeUpdate);\n audioElement.removeEventListener(\"loadedmetadata\", handleLoadedMetaData);\n audioElement.removeEventListener(\"ended\", handleTimeEnded);\n };\n }\n }, []);\n\n const togglePlay = () => {\n if (audioRef.current) {\n const audioElement = audioRef.current;\n if (!playing) {\n audioElement.play();\n } else {\n audioElement.pause();\n }\n setPlaying(!playing);\n }\n };\n\n const onSeekSeconds = (seconds: number) => {\n if (audioRef.current) {\n audioRef.current.currentTime += seconds;\n }\n };\n\n const handleSliderChange = (details: SliderValueChangeDetails) => {\n const newValue = details.value[0];\n if (audioRef.current && newValue != null && !isNaN(newValue)) {\n audioRef.current.currentTime = details.value[0];\n }\n };\n\n const handleVolumeSliderChange = (details: SliderValueChangeDetails) => {\n if (audioRef.current) {\n audioRef.current.volume = details.value[0] / 100;\n setVolumeValue(details.value[0]);\n }\n };\n\n return (\n <div>\n {/* TODO: We should tie this up to the textual description somehow */}\n {/* eslint-disable-next-line jsx-a11y/media-has-caption */}\n <audio ref={audioRef} src={src} title={title} preload=\"metadata\" />\n <ControlsWrapper>\n <Back15SecButton\n variant=\"tertiary\"\n title={t(\"audio.controls.rewind15sec\")}\n aria-label={t(\"audio.controls.rewind15sec\")}\n onClick={() => onSeekSeconds(-15)}\n >\n <Replay15Line />\n </Back15SecButton>\n <PlayButton aria-label={t(playing ? t(\"audio.pause\") : t(\"audio.play\"))} variant=\"primary\" onClick={togglePlay}>\n {playing ? <PauseLine /> : <PlayFill />}\n </PlayButton>\n <Forward15SecButton\n variant=\"tertiary\"\n title={t(\"audio.controls.forward15sec\")}\n aria-label={t(\"audio.controls.forward15sec\")}\n onClick={() => onSeekSeconds(15)}\n >\n <Forward15Line />\n </Forward15SecButton>\n <ProgressWrapper>\n <StyledText textStyle=\"label.medium\" asChild consumeCss>\n <div>{formatTime(currentTime)}</div>\n </StyledText>\n <SliderRoot\n value={[audioRef.current?.currentTime || 0]}\n defaultValue={[0]}\n step={1}\n max={Math.round(audioRef.current?.duration || 0)}\n onValueChange={handleSliderChange}\n getAriaValueText={(value) =>\n t(\"audio.valueText\", {\n start: formatTime(Math.round(value.value)),\n end: formatTime(Math.round(audioRef.current?.duration ?? 0)),\n })\n }\n >\n <SliderLabel srOnly>{t(\"audio.progressBar\")}</SliderLabel>\n <SliderControl>\n <SliderTrack>\n <SliderRange />\n </SliderTrack>\n <SliderThumb index={0}>\n <SliderHiddenInput />\n </SliderThumb>\n </SliderControl>\n </SliderRoot>\n <StyledText textStyle=\"label.medium\" asChild consumeCss>\n <div>-{formatTime(remainingTime)}</div>\n </StyledText>\n </ProgressWrapper>\n <FieldRoot>\n <StyledSelectRoot\n collection={speedValues}\n value={[speedValue.toString()]}\n onValueChange={(details) => setSpeedValue(parseFloat(details.value[0]))}\n positioning={{ placement: \"top\" }}\n >\n <SelectLabel srOnly>{t(\"audio.controls.selectSpeed\")}</SelectLabel>\n <SelectControl>\n <SelectTrigger asChild>\n <SpeedButton\n variant=\"tertiary\"\n title={t(\"audio.controls.selectSpeed\")}\n aria-label={t(\"audio.controls.selectSpeed\")}\n >\n <span>{`${speedValue}x`}</span>\n </SpeedButton>\n </SelectTrigger>\n </SelectControl>\n <SelectContent>\n {speedValues.items.map((speed) => (\n <SelectItem key={speed} item={speed}>\n <SelectItemText>{speed}x</SelectItemText>\n <SelectItemIndicator>\n <CheckLine />\n </SelectItemIndicator>\n </SelectItem>\n ))}\n </SelectContent>\n </StyledSelectRoot>\n </FieldRoot>\n <PopoverRoot positioning={{ placement: \"top\" }}>\n <PopoverTrigger asChild>\n <VolumeButton variant=\"tertiary\" aria-label={t(\"audio.controls.adjustVolume\")}>\n <VolumeUpFill />\n </VolumeButton>\n </PopoverTrigger>\n <StyledPopoverContent>\n <SliderRoot\n orientation=\"vertical\"\n value={[volumeValue]}\n min={0}\n max={100}\n defaultValue={[100]}\n step={1}\n onValueChange={handleVolumeSliderChange}\n >\n <SliderLabel srOnly>{t(\"audio.controls.adjustVolume\")}</SliderLabel>\n <StyledSliderControl>\n <SliderTrack>\n <SliderRange />\n </SliderTrack>\n <SliderThumb index={0}>\n <SliderHiddenInput />\n </SliderThumb>\n </StyledSliderControl>\n </SliderRoot>\n </StyledPopoverContent>\n </PopoverRoot>\n </ControlsWrapper>\n </div>\n );\n};\n"],"mappings":"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"}
|
|
@@ -10,5 +10,5 @@ type Props = {
|
|
|
10
10
|
title: string;
|
|
11
11
|
type?: "gloss" | "audio";
|
|
12
12
|
};
|
|
13
|
-
declare const SpeechControl: ({ src, title, type }: Props) => import("react/jsx-runtime").JSX.Element;
|
|
14
|
-
export
|
|
13
|
+
export declare const SpeechControl: ({ src, title, type }: Props) => import("react/jsx-runtime").JSX.Element;
|
|
14
|
+
export {};
|
|
@@ -37,8 +37,7 @@ const SpeechControl = ({ src, title, type = "audio" }) => {
|
|
|
37
37
|
})]
|
|
38
38
|
});
|
|
39
39
|
};
|
|
40
|
-
var SpeechControl_default = SpeechControl;
|
|
41
40
|
|
|
42
41
|
//#endregion
|
|
43
|
-
exports.
|
|
42
|
+
exports.SpeechControl = SpeechControl;
|
|
44
43
|
//# sourceMappingURL=SpeechControl.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SpeechControl.js","names":["IconButton","VolumeUpFill"],"sources":["../../src/AudioPlayer/SpeechControl.tsx"],"sourcesContent":["/**\n * Copyright (c) 2021-present, NDLA.\n *\n * This source code is licensed under the GPLv3 license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\nimport { useRef } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { VolumeUpFill } from \"@ndla/icons\";\nimport { IconButton } from \"@ndla/primitives\";\n\ntype Props = {\n src: string;\n title: string;\n type?: \"gloss\" | \"audio\";\n};\n\
|
|
1
|
+
{"version":3,"file":"SpeechControl.js","names":["IconButton","VolumeUpFill"],"sources":["../../src/AudioPlayer/SpeechControl.tsx"],"sourcesContent":["/**\n * Copyright (c) 2021-present, NDLA.\n *\n * This source code is licensed under the GPLv3 license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\nimport { useRef } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { VolumeUpFill } from \"@ndla/icons\";\nimport { IconButton } from \"@ndla/primitives\";\n\ntype Props = {\n src: string;\n title: string;\n type?: \"gloss\" | \"audio\";\n};\n\nexport const SpeechControl = ({ src, title, type = \"audio\" }: Props) => {\n const { t } = useTranslation();\n const audioRef = useRef<HTMLAudioElement>(null);\n\n const togglePlay = () => {\n if (audioRef.current) {\n const audioElement = audioRef.current;\n if (audioElement.paused) {\n audioElement.play();\n } else {\n audioElement.pause();\n }\n }\n };\n return (\n <div data-embed-type=\"speech\">\n {/* eslint-disable-next-line jsx-a11y/media-has-caption */}\n <audio ref={audioRef} src={src} title={title} preload=\"metadata\" />\n <IconButton variant=\"tertiary\" aria-label={t(`${type}.play`)} title={t(`${type}.play`)} onClick={togglePlay}>\n <VolumeUpFill />\n </IconButton>\n </div>\n );\n};\n"],"mappings":";;;;;;;;;;;;;AAmBA,MAAa,iBAAiB,EAAE,KAAK,OAAO,OAAO,cAAqB;CACtE,MAAM,EAAE,yCAAsB;CAC9B,MAAM,6BAAoC,KAAK;CAE/C,MAAM,mBAAmB;AACvB,MAAI,SAAS,SAAS;GACpB,MAAM,eAAe,SAAS;AAC9B,OAAI,aAAa,OACf,cAAa,MAAM;OAEnB,cAAa,OAAO;;;AAI1B,QACE,4CAAC;EAAI,mBAAgB;aAEnB,2CAAC;GAAM,KAAK;GAAe;GAAY;GAAO,SAAQ;IAAa,EACnE,2CAACA;GAAW,SAAQ;GAAW,cAAY,EAAE,GAAG,KAAK,OAAO;GAAE,OAAO,EAAE,GAAG,KAAK,OAAO;GAAE,SAAS;aAC/F,2CAACC,8BAAe;IACL;GACT"}
|
|
@@ -12,5 +12,5 @@ interface Props {
|
|
|
12
12
|
renderItem: (item: IndexedBreadcrumbItem, totalCount: number) => ReactNode;
|
|
13
13
|
renderSeparator: (item: IndexedBreadcrumbItem, totalCount: number) => ReactNode;
|
|
14
14
|
}
|
|
15
|
-
declare const Breadcrumb: ({ items, renderItem, renderSeparator }: Props) => import("react/jsx-runtime").JSX.Element;
|
|
16
|
-
export
|
|
15
|
+
export declare const Breadcrumb: ({ items, renderItem, renderSeparator }: Props) => import("react/jsx-runtime").JSX.Element;
|
|
16
|
+
export {};
|
|
@@ -26,7 +26,7 @@ const Breadcrumb = ({ items, renderItem, renderSeparator }) => {
|
|
|
26
26
|
const { t } = (0, react_i18next.useTranslation)();
|
|
27
27
|
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("nav", {
|
|
28
28
|
"aria-label": t("breadcrumb.breadcrumb"),
|
|
29
|
-
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(StyledList, { children: items.map((item, index) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_BreadcrumbItem.
|
|
29
|
+
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(StyledList, { children: items.map((item, index) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_BreadcrumbItem.BreadcrumbItem, {
|
|
30
30
|
renderItem,
|
|
31
31
|
renderSeparator,
|
|
32
32
|
totalCount: items.length,
|
|
@@ -37,8 +37,7 @@ const Breadcrumb = ({ items, renderItem, renderSeparator }) => {
|
|
|
37
37
|
}, typeof item.to === "string" ? item.to : item.to.pathname)) })
|
|
38
38
|
});
|
|
39
39
|
};
|
|
40
|
-
var Breadcrumb_default = Breadcrumb;
|
|
41
40
|
|
|
42
41
|
//#endregion
|
|
43
|
-
exports.
|
|
42
|
+
exports.Breadcrumb = Breadcrumb;
|
|
44
43
|
//# sourceMappingURL=Breadcrumb.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Breadcrumb.js","names":["BreadcrumbItem"],"sources":["../../src/Breadcrumb/Breadcrumb.tsx"],"sourcesContent":["/**\n * Copyright (c) 2016-present, NDLA.\n *\n * This source code is licensed under the GPLv3 license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\nimport { type ReactNode } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { styled } from \"@ndla/styled-system/jsx\";\nimport BreadcrumbItem,
|
|
1
|
+
{"version":3,"file":"Breadcrumb.js","names":["BreadcrumbItem"],"sources":["../../src/Breadcrumb/Breadcrumb.tsx"],"sourcesContent":["/**\n * Copyright (c) 2016-present, NDLA.\n *\n * This source code is licensed under the GPLv3 license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\nimport { type ReactNode } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { styled } from \"@ndla/styled-system/jsx\";\nimport { BreadcrumbItem, type IndexedBreadcrumbItem, type SimpleBreadcrumbItem } from \"./BreadcrumbItem\";\n\ninterface Props {\n items: SimpleBreadcrumbItem[];\n renderItem: (item: IndexedBreadcrumbItem, totalCount: number) => ReactNode;\n renderSeparator: (item: IndexedBreadcrumbItem, totalCount: number) => ReactNode;\n}\n\nconst StyledList = styled(\"ol\", {\n base: {\n display: \"flex\",\n flexWrap: \"wrap\",\n alignItems: \"center\",\n listStyle: \"none\",\n gap: \"xxsmall\",\n mobileDown: {\n alignItems: \"flex-start\",\n justifyContent: \"center\",\n flexDirection: \"column\",\n },\n },\n});\n\nexport const Breadcrumb = ({ items, renderItem, renderSeparator }: Props) => {\n const { t } = useTranslation();\n\n return (\n <nav aria-label={t(\"breadcrumb.breadcrumb\")}>\n <StyledList>\n {items.map((item, index) => (\n <BreadcrumbItem\n renderItem={renderItem}\n renderSeparator={renderSeparator}\n key={typeof item.to === \"string\" ? item.to : item.to.pathname}\n totalCount={items.length}\n item={{ ...item, index }}\n />\n ))}\n </StyledList>\n </nav>\n );\n};\n"],"mappings":";;;;;;;;;;;;AAmBA,MAAM,kDAAoB,MAAM,EAC9B,MAAM;CACJ,SAAS;CACT,UAAU;CACV,YAAY;CACZ,WAAW;CACX,KAAK;CACL,YAAY;EACV,YAAY;EACZ,gBAAgB;EAChB,eAAe;EAChB;CACF,EACF,CAAC;AAEF,MAAa,cAAc,EAAE,OAAO,YAAY,sBAA6B;CAC3E,MAAM,EAAE,yCAAsB;AAE9B,QACE,2CAAC;EAAI,cAAY,EAAE,wBAAwB;YACzC,2CAAC,wBACE,MAAM,KAAK,MAAM,UAChB,2CAACA;GACa;GACK;GAEjB,YAAY,MAAM;GAClB,MAAM;IAAE,GAAG;IAAM;IAAO;KAFnB,OAAO,KAAK,OAAO,WAAW,KAAK,KAAK,KAAK,GAAG,SAGrD,CACF,GACS;GACT"}
|
|
@@ -24,5 +24,5 @@ interface Props {
|
|
|
24
24
|
renderItem: (item: IndexedBreadcrumbItem, totalCount: number) => ReactNode;
|
|
25
25
|
renderSeparator: (item: IndexedBreadcrumbItem, totalCount: number) => ReactNode;
|
|
26
26
|
}
|
|
27
|
-
declare const BreadcrumbItem: ({ renderItem, renderSeparator, item, totalCount }: Props) => import("react/jsx-runtime").JSX.Element;
|
|
28
|
-
export
|
|
27
|
+
export declare const BreadcrumbItem: ({ renderItem, renderSeparator, item, totalCount }: Props) => import("react/jsx-runtime").JSX.Element;
|
|
28
|
+
export {};
|
|
@@ -22,8 +22,7 @@ const BreadcrumbItem = ({ renderItem, renderSeparator, item, totalCount }) => {
|
|
|
22
22
|
children: [renderItem(item, totalCount), renderSeparator(item, totalCount)]
|
|
23
23
|
});
|
|
24
24
|
};
|
|
25
|
-
var BreadcrumbItem_default = BreadcrumbItem;
|
|
26
25
|
|
|
27
26
|
//#endregion
|
|
28
|
-
exports.
|
|
27
|
+
exports.BreadcrumbItem = BreadcrumbItem;
|
|
29
28
|
//# sourceMappingURL=BreadcrumbItem.js.map
|