@ndla/ui 27.1.7 → 28.0.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/Frontpage/FrontpageAllSubjects.js +9 -8
- package/es/Resource/BlockResource.js +22 -13
- package/es/Resource/ListResource.js +24 -15
- package/es/Resource/resourceComponents.js +28 -28
- package/es/locale/messages-en.js +6 -6
- package/es/locale/messages-nb.js +17 -17
- package/es/locale/messages-nn.js +16 -16
- package/es/locale/messages-se.js +8 -8
- package/es/locale/messages-sma.js +17 -17
- package/es/model/ContentType.js +23 -1
- package/es/model/SubjectCategories.js +1 -5
- package/es/model/index.js +3 -2
- package/lib/Frontpage/FrontpageAllSubjects.js +10 -8
- package/lib/Resource/BlockResource.d.ts +6 -3
- package/lib/Resource/BlockResource.js +23 -12
- package/lib/Resource/ListResource.d.ts +6 -3
- package/lib/Resource/ListResource.js +25 -14
- package/lib/Resource/resourceComponents.d.ts +6 -3
- package/lib/Resource/resourceComponents.js +30 -30
- package/lib/locale/messages-en.d.ts +16 -23
- package/lib/locale/messages-en.js +6 -6
- package/lib/locale/messages-nb.d.ts +16 -23
- package/lib/locale/messages-nb.js +17 -17
- package/lib/locale/messages-nn.d.ts +16 -23
- package/lib/locale/messages-nn.js +16 -16
- package/lib/locale/messages-se.d.ts +16 -23
- package/lib/locale/messages-se.js +8 -8
- package/lib/locale/messages-sma.d.ts +16 -23
- package/lib/locale/messages-sma.js +17 -17
- package/lib/model/ContentType.d.ts +18 -0
- package/lib/model/ContentType.js +32 -2
- package/lib/model/SubjectCategories.d.ts +0 -3
- package/lib/model/SubjectCategories.js +3 -10
- package/lib/model/index.d.ts +12 -2
- package/lib/model/index.js +4 -3
- package/package.json +4 -4
- package/src/Frontpage/FrontpageAllSubjects.tsx +5 -2
- package/src/Resource/BlockResource.tsx +18 -11
- package/src/Resource/ListResource.tsx +14 -11
- package/src/Resource/resourceComponents.tsx +13 -14
- package/src/locale/messages-en.ts +5 -7
- package/src/locale/messages-nb.ts +16 -18
- package/src/locale/messages-nn.ts +15 -17
- package/src/locale/messages-se.ts +7 -9
- package/src/locale/messages-sma.ts +16 -18
- package/src/model/ContentType.ts +29 -0
- package/src/model/SubjectCategories.ts +0 -5
- package/src/model/index.ts +2 -1
- package/src/.DS_Store +0 -0
|
@@ -80,7 +80,7 @@ var messages = _objectSpread(_objectSpread({
|
|
|
80
80
|
embed: 'Sett inn',
|
|
81
81
|
notSupported: 'Det fungerte ikke å sette inn innholdet automatisk. Kopier kildekoden under for å sette inn på din side.'
|
|
82
82
|
},
|
|
83
|
-
subjectCategories: (_subjectCategories = {}, _defineProperty(_subjectCategories, subjectCategories.ACTIVE_SUBJECTS, 'Aktive'), _defineProperty(_subjectCategories, subjectCategories.ARCHIVE_SUBJECTS, 'Utgåtte'), _defineProperty(_subjectCategories, subjectCategories.BETA_SUBJECTS, 'Kommende'), _defineProperty(_subjectCategories,
|
|
83
|
+
subjectCategories: (_subjectCategories = {}, _defineProperty(_subjectCategories, subjectCategories.ACTIVE_SUBJECTS, 'Aktive'), _defineProperty(_subjectCategories, subjectCategories.ARCHIVE_SUBJECTS, 'Utgåtte'), _defineProperty(_subjectCategories, subjectCategories.BETA_SUBJECTS, 'Kommende'), _defineProperty(_subjectCategories, subjectTypes.RESOURCE_COLLECTION, 'Andre ressurser'), _subjectCategories),
|
|
84
84
|
subjectTypes: (_subjectTypes = {}, _defineProperty(_subjectTypes, subjectTypes.SUBJECT, 'Fag'), _defineProperty(_subjectTypes, subjectTypes.RESOURCE_COLLECTION, 'Ressurssamling'), _subjectTypes),
|
|
85
85
|
searchPage: {
|
|
86
86
|
noHits: 'Ingen artikler samsvarte med søket ditt på: {{query}}',
|
|
@@ -919,9 +919,9 @@ var messages = _objectSpread(_objectSpread({
|
|
|
919
919
|
loggedInAs: 'Du er pålogget som {{role}}.',
|
|
920
920
|
loggedInAsButton: 'Du er pålogget som {{role}}',
|
|
921
921
|
role: {
|
|
922
|
-
employee: '
|
|
923
|
-
staff: '
|
|
924
|
-
student: '
|
|
922
|
+
employee: 'lærer',
|
|
923
|
+
staff: 'ansatt',
|
|
924
|
+
student: 'elev'
|
|
925
925
|
},
|
|
926
926
|
buttonLogIn: 'Logg inn med Feide',
|
|
927
927
|
buttonLogOut: 'Logg ut',
|
|
@@ -936,7 +936,7 @@ var messages = _objectSpread(_objectSpread({
|
|
|
936
936
|
resource: {
|
|
937
937
|
accessDenied: 'Vi beklager, men denne ressursen er bare for lærere innlogget med Feide.'
|
|
938
938
|
},
|
|
939
|
-
primarySchool: '
|
|
939
|
+
primarySchool: 'hovedskole',
|
|
940
940
|
name: 'Navn',
|
|
941
941
|
mail: 'E-post',
|
|
942
942
|
username: 'Brukernavn',
|
|
@@ -945,7 +945,7 @@ var messages = _objectSpread(_objectSpread({
|
|
|
945
945
|
teaching: 'Undervisningsgruppe',
|
|
946
946
|
other: 'Andre grupper'
|
|
947
947
|
},
|
|
948
|
-
wrongUserInfoDisclaimer: 'Dersom
|
|
948
|
+
wrongUserInfoDisclaimer: 'Dersom informasjonen er feil, må den oppdateres av vertsorganisasjon/skoleeier som brukeren tilhører. Oversikt over brukerstøtte finnes her: '
|
|
949
949
|
},
|
|
950
950
|
checkOutNewFeature: 'Sjekk ut ny funksjonalitet',
|
|
951
951
|
slateBlockMenu: {
|
|
@@ -1003,16 +1003,16 @@ var messages = _objectSpread(_objectSpread({
|
|
|
1003
1003
|
loginTerms: 'Logg på med Feide for å få tilgang. Ved å logge på godkjenner du våre vilkår for bruk',
|
|
1004
1004
|
loginResourcePitch: 'Ønsker du å favorittmerke denne siden?',
|
|
1005
1005
|
loginWelcome: 'Velkommen til NDLA! Her kan du organisere fagstoffet på <i>din</i> måte!',
|
|
1006
|
-
welcome: 'Velkommen til Min NDLA! Nå kan du lagre dine
|
|
1006
|
+
welcome: 'Velkommen til Min NDLA! Nå kan du lagre favorittressursene dine fra NDLA og organisere dem i mapper og med emneknagger.',
|
|
1007
1007
|
read: {
|
|
1008
|
-
|
|
1009
|
-
|
|
1008
|
+
read: 'Les',
|
|
1009
|
+
our: ' vår.'
|
|
1010
1010
|
},
|
|
1011
|
-
privacy: '
|
|
1011
|
+
privacy: 'personvernerklæringa',
|
|
1012
1012
|
privacyLink: 'https://om.ndla.no/gdpr',
|
|
1013
1013
|
questions: {
|
|
1014
1014
|
question: 'Lurer du på noe?',
|
|
1015
|
-
ask: 'Spør
|
|
1015
|
+
ask: 'Spør NDLA'
|
|
1016
1016
|
},
|
|
1017
1017
|
wishToDelete: 'Vil du ikke ha brukerprofil hos oss lenger?',
|
|
1018
1018
|
terms: {
|
|
@@ -1025,16 +1025,16 @@ var messages = _objectSpread(_objectSpread({
|
|
|
1025
1025
|
feide: 'Dette henter vi om deg gjennom Feide',
|
|
1026
1026
|
feideWrongInfo: 'Dersom informasjon er feil, så må dette oppdateres av vertsorganisasjon/skoleeier som brukeren tilhører. Oversikt over brukerstøtte finnes her: feide.no/brukerstøtte',
|
|
1027
1027
|
storageInfo: {
|
|
1028
|
-
title: 'Slik lagrer du dine
|
|
1029
|
-
text: 'Klikk på hjerteknappen for å lagre en ressurs. Du vil da få mulighet til å lagre ressursen i
|
|
1028
|
+
title: 'Slik lagrer du favorittressursene dine fra NDLA',
|
|
1029
|
+
text: 'Klikk på hjerteknappen for å lagre en ressurs. Du vil da få mulighet til å lagre ressursen i ei mappe.'
|
|
1030
1030
|
},
|
|
1031
1031
|
folderInfo: {
|
|
1032
|
-
title: 'Slik organiserer du dine
|
|
1033
|
-
text: 'Klikk på
|
|
1032
|
+
title: 'Slik organiserer du favorittressursene dine i mapper',
|
|
1033
|
+
text: 'Klikk på <strong>Mine mapper</strong> i menyen til venstre for å komme til mappeoversikten. Her kan du opprette nye mapper og undermapper. Du kan også opprette ei ny mappe i dialogvinduet som kommer når du klikker på et hjerte i en ressurs.'
|
|
1034
1034
|
},
|
|
1035
1035
|
tagInfo: {
|
|
1036
|
-
title: 'Slik tagger du dine
|
|
1037
|
-
text: 'Når du lagrer en ressurs får du mulighet til å markere ressursen med en emneknagg. Emneknaggen er et nøkkelord du kan bruke til å finne tilbake til ressurser på tvers av mapper. Du finner alle emneknaggene du har brukt ved å velge
|
|
1036
|
+
title: 'Slik tagger du favorittressursene dine',
|
|
1037
|
+
text: 'Når du lagrer en ressurs, får du mulighet til å markere ressursen med en emneknagg. Emneknaggen er et nøkkelord du kan bruke til å finne tilbake til ressurser på tvers av mapper. Du finner alle emneknaggene du har brukt, ved å velge <strong>Mine emneknagger</strong> i venstremenyen. Her kan du også se hvilke ressurser du har markert med hvilken emneknagg.'
|
|
1038
1038
|
}
|
|
1039
1039
|
},
|
|
1040
1040
|
resource: {
|
|
@@ -14,4 +14,22 @@ export declare const SOURCE_MATERIAL = "source-material";
|
|
|
14
14
|
export declare const LEARNING_PATH = "learning-path";
|
|
15
15
|
export declare const TOPIC = "topic";
|
|
16
16
|
export declare const MULTIDISCIPLINARY_TOPIC = "multidisciplinary-topic";
|
|
17
|
+
export declare const contentTypes: {
|
|
18
|
+
SUBJECT_MATERIAL: string;
|
|
19
|
+
TASKS_AND_ACTIVITIES: string;
|
|
20
|
+
ASSESSMENT_RESOURCES: string;
|
|
21
|
+
SUBJECT: string;
|
|
22
|
+
EXTERNAL_LEARNING_RESOURCES: string;
|
|
23
|
+
SOURCE_MATERIAL: string;
|
|
24
|
+
LEARNING_PATH: string;
|
|
25
|
+
TOPIC: string;
|
|
26
|
+
MULTIDISCIPLINARY_TOPIC: string;
|
|
27
|
+
};
|
|
28
|
+
export declare const RESOURCE_TYPE_LEARNING_PATH = "urn:resourcetype:learningPath";
|
|
29
|
+
export declare const RESOURCE_TYPE_SUBJECT_MATERIAL = "urn:resourcetype:subjectMaterial";
|
|
30
|
+
export declare const RESOURCE_TYPE_TASKS_AND_ACTIVITIES = "urn:resourcetype:tasksAndActivities";
|
|
31
|
+
export declare const RESOURCE_TYPE_ASSESSMENT_RESOURCES = "urn:resourcetype:reviewResource";
|
|
32
|
+
export declare const RESOURCE_TYPE_EXTERNAL_LEARNING_RESOURCES = "urn:resourcetype:externalResource";
|
|
33
|
+
export declare const RESOURCE_TYPE_SOURCE_MATERIAL = "urn:resourcetype:SourceMaterial";
|
|
17
34
|
export declare const ListOfContentTypes: string[];
|
|
35
|
+
export declare const contentTypeMapping: Record<string, string>;
|
package/lib/model/ContentType.js
CHANGED
|
@@ -3,7 +3,11 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.ListOfContentTypes = exports.MULTIDISCIPLINARY_TOPIC = exports.TOPIC = exports.LEARNING_PATH = exports.SOURCE_MATERIAL = exports.EXTERNAL_LEARNING_RESOURCES = exports.SUBJECT = exports.ASSESSMENT_RESOURCES = exports.TASKS_AND_ACTIVITIES = exports.SUBJECT_MATERIAL = void 0;
|
|
6
|
+
exports.contentTypeMapping = exports.ListOfContentTypes = exports.RESOURCE_TYPE_SOURCE_MATERIAL = exports.RESOURCE_TYPE_EXTERNAL_LEARNING_RESOURCES = exports.RESOURCE_TYPE_ASSESSMENT_RESOURCES = exports.RESOURCE_TYPE_TASKS_AND_ACTIVITIES = exports.RESOURCE_TYPE_SUBJECT_MATERIAL = exports.RESOURCE_TYPE_LEARNING_PATH = exports.contentTypes = exports.MULTIDISCIPLINARY_TOPIC = exports.TOPIC = exports.LEARNING_PATH = exports.SOURCE_MATERIAL = exports.EXTERNAL_LEARNING_RESOURCES = exports.SUBJECT = exports.ASSESSMENT_RESOURCES = exports.TASKS_AND_ACTIVITIES = exports.SUBJECT_MATERIAL = void 0;
|
|
7
|
+
|
|
8
|
+
var _contentTypeMapping;
|
|
9
|
+
|
|
10
|
+
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
7
11
|
|
|
8
12
|
/**
|
|
9
13
|
* Copyright (c) 2017-present, NDLA.
|
|
@@ -30,5 +34,31 @@ var TOPIC = 'topic';
|
|
|
30
34
|
exports.TOPIC = TOPIC;
|
|
31
35
|
var MULTIDISCIPLINARY_TOPIC = 'multidisciplinary-topic';
|
|
32
36
|
exports.MULTIDISCIPLINARY_TOPIC = MULTIDISCIPLINARY_TOPIC;
|
|
37
|
+
var contentTypes = {
|
|
38
|
+
SUBJECT_MATERIAL: SUBJECT_MATERIAL,
|
|
39
|
+
TASKS_AND_ACTIVITIES: TASKS_AND_ACTIVITIES,
|
|
40
|
+
ASSESSMENT_RESOURCES: ASSESSMENT_RESOURCES,
|
|
41
|
+
SUBJECT: SUBJECT,
|
|
42
|
+
EXTERNAL_LEARNING_RESOURCES: EXTERNAL_LEARNING_RESOURCES,
|
|
43
|
+
SOURCE_MATERIAL: SOURCE_MATERIAL,
|
|
44
|
+
LEARNING_PATH: LEARNING_PATH,
|
|
45
|
+
TOPIC: TOPIC,
|
|
46
|
+
MULTIDISCIPLINARY_TOPIC: MULTIDISCIPLINARY_TOPIC
|
|
47
|
+
};
|
|
48
|
+
exports.contentTypes = contentTypes;
|
|
49
|
+
var RESOURCE_TYPE_LEARNING_PATH = 'urn:resourcetype:learningPath';
|
|
50
|
+
exports.RESOURCE_TYPE_LEARNING_PATH = RESOURCE_TYPE_LEARNING_PATH;
|
|
51
|
+
var RESOURCE_TYPE_SUBJECT_MATERIAL = 'urn:resourcetype:subjectMaterial';
|
|
52
|
+
exports.RESOURCE_TYPE_SUBJECT_MATERIAL = RESOURCE_TYPE_SUBJECT_MATERIAL;
|
|
53
|
+
var RESOURCE_TYPE_TASKS_AND_ACTIVITIES = 'urn:resourcetype:tasksAndActivities';
|
|
54
|
+
exports.RESOURCE_TYPE_TASKS_AND_ACTIVITIES = RESOURCE_TYPE_TASKS_AND_ACTIVITIES;
|
|
55
|
+
var RESOURCE_TYPE_ASSESSMENT_RESOURCES = 'urn:resourcetype:reviewResource';
|
|
56
|
+
exports.RESOURCE_TYPE_ASSESSMENT_RESOURCES = RESOURCE_TYPE_ASSESSMENT_RESOURCES;
|
|
57
|
+
var RESOURCE_TYPE_EXTERNAL_LEARNING_RESOURCES = 'urn:resourcetype:externalResource';
|
|
58
|
+
exports.RESOURCE_TYPE_EXTERNAL_LEARNING_RESOURCES = RESOURCE_TYPE_EXTERNAL_LEARNING_RESOURCES;
|
|
59
|
+
var RESOURCE_TYPE_SOURCE_MATERIAL = 'urn:resourcetype:SourceMaterial';
|
|
60
|
+
exports.RESOURCE_TYPE_SOURCE_MATERIAL = RESOURCE_TYPE_SOURCE_MATERIAL;
|
|
33
61
|
var ListOfContentTypes = ['SUBJECT_MATERIAL', 'TASKS_AND_ACTIVITIES', 'ASSESSMENT_RESOURCES', 'SUBJECT', 'EXTERNAL_LEARNING_RESOURCES', 'SOURCE_MATERIAL', 'LEARNING_PATH', 'TOPIC', 'MULTIDISIPLINARY_TOPIC'];
|
|
34
|
-
exports.ListOfContentTypes = ListOfContentTypes;
|
|
62
|
+
exports.ListOfContentTypes = ListOfContentTypes;
|
|
63
|
+
var contentTypeMapping = (_contentTypeMapping = {}, _defineProperty(_contentTypeMapping, RESOURCE_TYPE_LEARNING_PATH, LEARNING_PATH), _defineProperty(_contentTypeMapping, RESOURCE_TYPE_SUBJECT_MATERIAL, SUBJECT_MATERIAL), _defineProperty(_contentTypeMapping, RESOURCE_TYPE_TASKS_AND_ACTIVITIES, TASKS_AND_ACTIVITIES), _defineProperty(_contentTypeMapping, RESOURCE_TYPE_ASSESSMENT_RESOURCES, ASSESSMENT_RESOURCES), _defineProperty(_contentTypeMapping, RESOURCE_TYPE_EXTERNAL_LEARNING_RESOURCES, EXTERNAL_LEARNING_RESOURCES), _defineProperty(_contentTypeMapping, RESOURCE_TYPE_SOURCE_MATERIAL, SOURCE_MATERIAL), _defineProperty(_contentTypeMapping, "default", SUBJECT_MATERIAL), _contentTypeMapping);
|
|
64
|
+
exports.contentTypeMapping = contentTypeMapping;
|
|
@@ -8,6 +8,3 @@
|
|
|
8
8
|
export declare const ACTIVE_SUBJECTS = "active";
|
|
9
9
|
export declare const BETA_SUBJECTS = "beta";
|
|
10
10
|
export declare const ARCHIVE_SUBJECTS = "archive";
|
|
11
|
-
export declare const COMMON_SUBJECTS = "common";
|
|
12
|
-
export declare const PROGRAMME_SUBJECTS = "programme";
|
|
13
|
-
export declare const SPECIALIZED_SUBJECTS = "specialized";
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.
|
|
6
|
+
exports.ARCHIVE_SUBJECTS = exports.BETA_SUBJECTS = exports.ACTIVE_SUBJECTS = void 0;
|
|
7
7
|
|
|
8
8
|
/**
|
|
9
9
|
* Copyright (c) 2021-present, NDLA.
|
|
@@ -16,12 +16,5 @@ var ACTIVE_SUBJECTS = 'active';
|
|
|
16
16
|
exports.ACTIVE_SUBJECTS = ACTIVE_SUBJECTS;
|
|
17
17
|
var BETA_SUBJECTS = 'beta';
|
|
18
18
|
exports.BETA_SUBJECTS = BETA_SUBJECTS;
|
|
19
|
-
var ARCHIVE_SUBJECTS = 'archive';
|
|
20
|
-
|
|
21
|
-
exports.ARCHIVE_SUBJECTS = ARCHIVE_SUBJECTS;
|
|
22
|
-
var COMMON_SUBJECTS = 'common';
|
|
23
|
-
exports.COMMON_SUBJECTS = COMMON_SUBJECTS;
|
|
24
|
-
var PROGRAMME_SUBJECTS = 'programme';
|
|
25
|
-
exports.PROGRAMME_SUBJECTS = PROGRAMME_SUBJECTS;
|
|
26
|
-
var SPECIALIZED_SUBJECTS = 'specialized';
|
|
27
|
-
exports.SPECIALIZED_SUBJECTS = SPECIALIZED_SUBJECTS;
|
|
19
|
+
var ARCHIVE_SUBJECTS = 'archive';
|
|
20
|
+
exports.ARCHIVE_SUBJECTS = ARCHIVE_SUBJECTS;
|
package/lib/model/index.d.ts
CHANGED
|
@@ -5,12 +5,22 @@
|
|
|
5
5
|
* LICENSE file in the root directory of this source tree.
|
|
6
6
|
*
|
|
7
7
|
*/
|
|
8
|
-
import * as contentTypes from './ContentType';
|
|
9
8
|
import * as subjectCategories from './SubjectCategories';
|
|
10
9
|
import * as subjectTypes from './SubjectTypes';
|
|
11
10
|
declare const model: {
|
|
12
|
-
contentTypes:
|
|
11
|
+
contentTypes: {
|
|
12
|
+
SUBJECT_MATERIAL: string;
|
|
13
|
+
TASKS_AND_ACTIVITIES: string;
|
|
14
|
+
ASSESSMENT_RESOURCES: string;
|
|
15
|
+
SUBJECT: string;
|
|
16
|
+
EXTERNAL_LEARNING_RESOURCES: string;
|
|
17
|
+
SOURCE_MATERIAL: string;
|
|
18
|
+
LEARNING_PATH: string;
|
|
19
|
+
TOPIC: string;
|
|
20
|
+
MULTIDISCIPLINARY_TOPIC: string;
|
|
21
|
+
};
|
|
13
22
|
subjectCategories: typeof subjectCategories;
|
|
14
23
|
subjectTypes: typeof subjectTypes;
|
|
24
|
+
contentTypeMapping: Record<string, string>;
|
|
15
25
|
};
|
|
16
26
|
export default model;
|
package/lib/model/index.js
CHANGED
|
@@ -7,7 +7,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
7
7
|
});
|
|
8
8
|
exports["default"] = void 0;
|
|
9
9
|
|
|
10
|
-
var
|
|
10
|
+
var _ContentType = require("./ContentType");
|
|
11
11
|
|
|
12
12
|
var subjectCategories = _interopRequireWildcard(require("./SubjectCategories"));
|
|
13
13
|
|
|
@@ -25,9 +25,10 @@ function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj;
|
|
|
25
25
|
*
|
|
26
26
|
*/
|
|
27
27
|
var model = {
|
|
28
|
-
contentTypes: contentTypes,
|
|
28
|
+
contentTypes: _ContentType.contentTypes,
|
|
29
29
|
subjectCategories: subjectCategories,
|
|
30
|
-
subjectTypes: subjectTypes
|
|
30
|
+
subjectTypes: subjectTypes,
|
|
31
|
+
contentTypeMapping: _ContentType.contentTypeMapping
|
|
31
32
|
};
|
|
32
33
|
var _default = model;
|
|
33
34
|
exports["default"] = _default;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ndla/ui",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "28.0.0",
|
|
4
4
|
"description": "UI component library for NDLA.",
|
|
5
5
|
"license": "GPL-3.0",
|
|
6
6
|
"main": "lib/index.js",
|
|
@@ -39,8 +39,8 @@
|
|
|
39
39
|
"@ndla/hooks": "^1.1.6",
|
|
40
40
|
"@ndla/icons": "^1.13.0",
|
|
41
41
|
"@ndla/licenses": "^5.0.17",
|
|
42
|
-
"@ndla/modal": "^1.
|
|
43
|
-
"@ndla/notion": "^3.1.
|
|
42
|
+
"@ndla/modal": "^1.6.0",
|
|
43
|
+
"@ndla/notion": "^3.1.47",
|
|
44
44
|
"@ndla/safelink": "^2.2.19",
|
|
45
45
|
"@ndla/switch": "^0.1.13",
|
|
46
46
|
"@ndla/tabs": "^1.1.22",
|
|
@@ -85,5 +85,5 @@
|
|
|
85
85
|
"publishConfig": {
|
|
86
86
|
"access": "public"
|
|
87
87
|
},
|
|
88
|
-
"gitHead": "
|
|
88
|
+
"gitHead": "f7cac264e9855369dc3061fc240ece485de041bb"
|
|
89
89
|
}
|
|
@@ -6,6 +6,7 @@ import SafeLink from '@ndla/safelink';
|
|
|
6
6
|
import { colors, fonts, mq, breakpoints } from '@ndla/core';
|
|
7
7
|
import { MessageBox } from '../Messages';
|
|
8
8
|
import { ToggleItem } from '../Filter';
|
|
9
|
+
import constants from '../model';
|
|
9
10
|
|
|
10
11
|
const StyledWrapper = styled.nav`
|
|
11
12
|
margin: 32px 0 0;
|
|
@@ -198,12 +199,14 @@ const FrontpageAllSubjects = ({
|
|
|
198
199
|
content: (
|
|
199
200
|
<>
|
|
200
201
|
{/* Should be persistent til fall 2022 */}
|
|
201
|
-
{category.name === t('subjectCategories.beta')
|
|
202
|
+
{(category.name === t('subjectCategories.beta') ||
|
|
203
|
+
category.type === constants.subjectCategories.BETA_SUBJECTS) && (
|
|
202
204
|
<MessageBoxWrapper>
|
|
203
205
|
<MessageBox>{t('messageBoxInfo.frontPageBeta')}</MessageBox>
|
|
204
206
|
</MessageBoxWrapper>
|
|
205
207
|
)}
|
|
206
|
-
{category.name === t('subjectCategories.archive')
|
|
208
|
+
{(category.name === t('subjectCategories.archive') ||
|
|
209
|
+
category.type === constants.subjectCategories.ARCHIVE_SUBJECTS) && (
|
|
207
210
|
<MessageBoxWrapper>
|
|
208
211
|
<MessageBox>{t('messageBoxInfo.frontPageExpired')}</MessageBox>
|
|
209
212
|
</MessageBoxWrapper>
|
|
@@ -17,12 +17,13 @@ import {
|
|
|
17
17
|
ResourceImageProps,
|
|
18
18
|
ResourceTitle,
|
|
19
19
|
Row,
|
|
20
|
-
|
|
20
|
+
ResourceTypeList,
|
|
21
21
|
ResourceTitleLink,
|
|
22
22
|
LoaderProps,
|
|
23
23
|
StyledContentIconWrapper,
|
|
24
24
|
} from './resourceComponents';
|
|
25
25
|
import ContentLoader from '../ContentLoader';
|
|
26
|
+
import { contentTypeMapping } from '../model/ContentType';
|
|
26
27
|
|
|
27
28
|
interface BlockResourceProps {
|
|
28
29
|
id: string;
|
|
@@ -30,13 +31,13 @@ interface BlockResourceProps {
|
|
|
30
31
|
tagLinkPrefix?: string;
|
|
31
32
|
title: string;
|
|
32
33
|
resourceImage: ResourceImageProps;
|
|
33
|
-
topics: string[];
|
|
34
34
|
tags?: string[];
|
|
35
35
|
description?: string;
|
|
36
|
+
headingLevel?: 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6';
|
|
36
37
|
menuItems?: MenuItemProps[];
|
|
37
38
|
isLoading?: boolean;
|
|
38
39
|
targetBlank?: boolean;
|
|
39
|
-
|
|
40
|
+
resourceTypes?: { id: string; name: string }[];
|
|
40
41
|
}
|
|
41
42
|
|
|
42
43
|
const BlockElementWrapper = styled.div`
|
|
@@ -128,7 +129,7 @@ const BlockImage = ({ image, loading, contentType }: BlockImageProps) => {
|
|
|
128
129
|
}
|
|
129
130
|
};
|
|
130
131
|
|
|
131
|
-
const
|
|
132
|
+
const ResourceTypeAndTitleLoader = ({ children, loading }: LoaderProps) => {
|
|
132
133
|
if (loading) {
|
|
133
134
|
return (
|
|
134
135
|
<ContentLoader height={'18px'} width={'100%'} viewBox={null} preserveAspectRatio="none">
|
|
@@ -148,14 +149,16 @@ const BlockResource = ({
|
|
|
148
149
|
title,
|
|
149
150
|
tags,
|
|
150
151
|
resourceImage,
|
|
151
|
-
topics,
|
|
152
152
|
description,
|
|
153
153
|
menuItems,
|
|
154
154
|
isLoading,
|
|
155
|
+
headingLevel = 'h2',
|
|
155
156
|
targetBlank,
|
|
156
|
-
|
|
157
|
+
resourceTypes,
|
|
157
158
|
}: BlockResourceProps) => {
|
|
158
159
|
const linkRef = useRef<HTMLAnchorElement>(null);
|
|
160
|
+
const firstResourceType = resourceTypes?.[0].id ?? '';
|
|
161
|
+
const Title = ResourceTitle.withComponent(headingLevel);
|
|
159
162
|
|
|
160
163
|
const handleClick = () => {
|
|
161
164
|
if (linkRef.current) {
|
|
@@ -166,15 +169,19 @@ const BlockResource = ({
|
|
|
166
169
|
return (
|
|
167
170
|
<BlockElementWrapper onClick={handleClick} id={id}>
|
|
168
171
|
<ImageWrapper>
|
|
169
|
-
<BlockImage
|
|
172
|
+
<BlockImage
|
|
173
|
+
image={resourceImage}
|
|
174
|
+
loading={isLoading}
|
|
175
|
+
contentType={contentTypeMapping[firstResourceType] ?? contentTypeMapping['default']}
|
|
176
|
+
/>
|
|
170
177
|
</ImageWrapper>
|
|
171
178
|
<BlockInfoWrapper>
|
|
172
|
-
<
|
|
179
|
+
<ResourceTypeAndTitleLoader loading={isLoading}>
|
|
173
180
|
<ResourceTitleLink title={title} target={targetBlank ? '_blank' : undefined} to={link} ref={linkRef}>
|
|
174
|
-
<
|
|
181
|
+
<Title>{title}</Title>
|
|
175
182
|
</ResourceTitleLink>
|
|
176
|
-
</
|
|
177
|
-
<
|
|
183
|
+
</ResourceTypeAndTitleLoader>
|
|
184
|
+
<ResourceTypeList resourceTypes={resourceTypes} />
|
|
178
185
|
<BlockDescription>{description}</BlockDescription>
|
|
179
186
|
<RightRow>
|
|
180
187
|
{tags && <CompressedTagList tagLinkPrefix={tagLinkPrefix} tags={tags} />}
|
|
@@ -16,12 +16,13 @@ import {
|
|
|
16
16
|
ResourceImageProps,
|
|
17
17
|
ResourceTitle,
|
|
18
18
|
ResourceTitleLink,
|
|
19
|
-
|
|
19
|
+
ResourceTypeList,
|
|
20
20
|
StyledContentIconWrapper,
|
|
21
21
|
LoaderProps,
|
|
22
22
|
} from './resourceComponents';
|
|
23
23
|
import ContentLoader from '../ContentLoader';
|
|
24
24
|
import ContentTypeBadge from '../ContentTypeBadge';
|
|
25
|
+
import { contentTypeMapping } from '../model/ContentType';
|
|
25
26
|
|
|
26
27
|
const StyledResourceDescription = styled.p`
|
|
27
28
|
grid-area: description;
|
|
@@ -124,13 +125,13 @@ export interface ListResourceProps {
|
|
|
124
125
|
tagLinkPrefix?: string;
|
|
125
126
|
title: string;
|
|
126
127
|
resourceImage: ResourceImageProps;
|
|
127
|
-
|
|
128
|
+
headingLevel?: 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6';
|
|
129
|
+
resourceTypes: { id: string; name: string }[];
|
|
128
130
|
tags?: string[];
|
|
129
131
|
description?: string;
|
|
130
132
|
menuItems?: MenuItemProps[];
|
|
131
133
|
isLoading?: boolean;
|
|
132
134
|
targetBlank?: boolean;
|
|
133
|
-
contentType: string;
|
|
134
135
|
}
|
|
135
136
|
|
|
136
137
|
interface ListResourceImageProps {
|
|
@@ -169,7 +170,7 @@ const ListResourceImage = ({ resourceImage, loading, type, contentType }: ListRe
|
|
|
169
170
|
);
|
|
170
171
|
};
|
|
171
172
|
|
|
172
|
-
const
|
|
173
|
+
const ResourceTypeAndTitleLoader = ({ loading, children }: LoaderProps) => {
|
|
173
174
|
if (loading) {
|
|
174
175
|
return (
|
|
175
176
|
<ContentLoader height={'40px'} width={'100%'} viewBox={null} preserveAspectRatio="none">
|
|
@@ -205,16 +206,18 @@ const ListResource = ({
|
|
|
205
206
|
title,
|
|
206
207
|
tags,
|
|
207
208
|
resourceImage,
|
|
208
|
-
|
|
209
|
+
resourceTypes,
|
|
210
|
+
headingLevel = 'h2',
|
|
209
211
|
description,
|
|
210
212
|
menuItems,
|
|
211
213
|
isLoading = false,
|
|
212
214
|
targetBlank,
|
|
213
|
-
contentType,
|
|
214
215
|
}: ListResourceProps) => {
|
|
215
216
|
const showDescription = description !== undefined;
|
|
216
217
|
const imageType = showDescription ? 'normal' : 'compact';
|
|
217
218
|
const linkRef = useRef<HTMLAnchorElement>(null);
|
|
219
|
+
const firstContentType = resourceTypes?.[0].id ?? '';
|
|
220
|
+
const Title = ResourceTitle.withComponent(headingLevel);
|
|
218
221
|
const handleClick = () => {
|
|
219
222
|
if (linkRef.current) {
|
|
220
223
|
linkRef.current.click();
|
|
@@ -228,16 +231,16 @@ const ListResource = ({
|
|
|
228
231
|
resourceImage={resourceImage}
|
|
229
232
|
loading={isLoading}
|
|
230
233
|
type={imageType}
|
|
231
|
-
contentType={
|
|
234
|
+
contentType={contentTypeMapping[firstContentType] ?? contentTypeMapping['default']}
|
|
232
235
|
/>
|
|
233
236
|
</StyledImageWrapper>
|
|
234
237
|
<TopicAndTitleWrapper>
|
|
235
|
-
<
|
|
238
|
+
<ResourceTypeAndTitleLoader loading={isLoading}>
|
|
236
239
|
<ResourceTitleLink to={link} target={targetBlank ? '_blank' : undefined} ref={linkRef}>
|
|
237
|
-
<
|
|
240
|
+
<Title>{title}</Title>
|
|
238
241
|
</ResourceTitleLink>
|
|
239
|
-
<
|
|
240
|
-
</
|
|
242
|
+
<ResourceTypeList resourceTypes={resourceTypes} />
|
|
243
|
+
</ResourceTypeAndTitleLoader>
|
|
241
244
|
</TopicAndTitleWrapper>
|
|
242
245
|
{showDescription && <ResourceDescription description={description} loading={isLoading} />}
|
|
243
246
|
<TagsandActionMenu>
|
|
@@ -65,13 +65,12 @@ const StyledSafeLink = styled(SafeLink)`
|
|
|
65
65
|
}
|
|
66
66
|
`;
|
|
67
67
|
|
|
68
|
-
const
|
|
68
|
+
const StyledResourceTypeList = styled.ul`
|
|
69
69
|
list-style: none;
|
|
70
70
|
display: flex;
|
|
71
71
|
margin: 0;
|
|
72
72
|
padding: 0;
|
|
73
73
|
overflow: hidden;
|
|
74
|
-
grid-area: topicList;
|
|
75
74
|
`;
|
|
76
75
|
|
|
77
76
|
const StyledTopicDivider = styled.span`
|
|
@@ -79,7 +78,7 @@ const StyledTopicDivider = styled.span`
|
|
|
79
78
|
padding: 0 ${spacing.xxsmall};
|
|
80
79
|
`;
|
|
81
80
|
|
|
82
|
-
const
|
|
81
|
+
const StyledResourceListElement = styled.li`
|
|
83
82
|
${fonts.sizes(12)};
|
|
84
83
|
margin: 0;
|
|
85
84
|
line-height: 1.5;
|
|
@@ -187,21 +186,21 @@ export const CompressedTagList = ({ tags, tagLinkPrefix }: CompressedTagListProp
|
|
|
187
186
|
);
|
|
188
187
|
};
|
|
189
188
|
|
|
190
|
-
interface
|
|
191
|
-
|
|
189
|
+
interface ResourceTypeListProps {
|
|
190
|
+
resourceTypes?: { id: string; name: string }[];
|
|
192
191
|
}
|
|
193
192
|
|
|
194
|
-
export const
|
|
193
|
+
export const ResourceTypeList = ({ resourceTypes }: ResourceTypeListProps) => {
|
|
195
194
|
const { t } = useTranslation();
|
|
196
|
-
if (!
|
|
195
|
+
if (!resourceTypes) return null;
|
|
197
196
|
return (
|
|
198
|
-
<
|
|
199
|
-
{
|
|
200
|
-
<
|
|
201
|
-
{
|
|
202
|
-
{i !==
|
|
203
|
-
</
|
|
197
|
+
<StyledResourceTypeList aria-label={t('navigation.topics')}>
|
|
198
|
+
{resourceTypes.map((resource, i) => (
|
|
199
|
+
<StyledResourceListElement key={resource.id}>
|
|
200
|
+
{resource.name}
|
|
201
|
+
{i !== resourceTypes.length - 1 && <StyledTopicDivider aria-hidden="true">•</StyledTopicDivider>}
|
|
202
|
+
</StyledResourceListElement>
|
|
204
203
|
))}
|
|
205
|
-
</
|
|
204
|
+
</StyledResourceTypeList>
|
|
206
205
|
);
|
|
207
206
|
};
|
|
@@ -71,9 +71,7 @@ const messages = {
|
|
|
71
71
|
[subjectCategories.ACTIVE_SUBJECTS]: 'Active',
|
|
72
72
|
[subjectCategories.ARCHIVE_SUBJECTS]: 'Expired',
|
|
73
73
|
[subjectCategories.BETA_SUBJECTS]: 'Revised',
|
|
74
|
-
[
|
|
75
|
-
[subjectCategories.PROGRAMME_SUBJECTS]: 'Programme subj. SF',
|
|
76
|
-
[subjectCategories.SPECIALIZED_SUBJECTS]: 'Programme subj. YF',
|
|
74
|
+
[subjectTypes.RESOURCE_COLLECTION]: 'Other resources',
|
|
77
75
|
},
|
|
78
76
|
subjectTypes: {
|
|
79
77
|
[subjectTypes.SUBJECT]: 'Subject',
|
|
@@ -1047,10 +1045,10 @@ const messages = {
|
|
|
1047
1045
|
deleteAccount: 'Delete My NDLA',
|
|
1048
1046
|
welcome:
|
|
1049
1047
|
'Welcome to my NDLA! You can now save your favourite resources from NDLA and organise them in folders with tags',
|
|
1050
|
-
read: {
|
|
1048
|
+
read: { read: 'Read our', our: '.' },
|
|
1051
1049
|
privacy: 'privacy statement',
|
|
1052
1050
|
privacyLink: 'https://om.ndla.no/gdpr',
|
|
1053
|
-
questions: { question: 'Any questions?', ask: 'Ask
|
|
1051
|
+
questions: { question: 'Any questions?', ask: 'Ask NDLA' },
|
|
1054
1052
|
wishToDelete: 'Do you wish to delete your account?',
|
|
1055
1053
|
terms: {
|
|
1056
1054
|
terms: 'Terms of use',
|
|
@@ -1069,11 +1067,11 @@ const messages = {
|
|
|
1069
1067
|
},
|
|
1070
1068
|
folderInfo: {
|
|
1071
1069
|
title: 'How to organise your favourite resources in folders',
|
|
1072
|
-
text: 'You can get to the folder overview by clicking on
|
|
1070
|
+
text: 'You can get to the folder overview by clicking on <strong>My folders</strong> on the menu to the left. Here you can create new folders and subfolder. You can also create a new folder in the dialogue window that is activated when you click on the heart in a resource',
|
|
1073
1071
|
},
|
|
1074
1072
|
tagInfo: {
|
|
1075
1073
|
title: 'How to tag your favourite resources',
|
|
1076
|
-
text: 'When you save a resource, you will have the option to tag it with a keyword. This tag can be used to find the resource across folders. By selecting
|
|
1074
|
+
text: 'When you save a resource, you will have the option to tag it with a keyword. This tag can be used to find the resource across folders. By selecting <strong>My tags</strong> on the menu to the left, you will see all the tags your have used. You can also see which resources are tagget with which keyword.',
|
|
1077
1075
|
},
|
|
1078
1076
|
},
|
|
1079
1077
|
resource: {
|
|
@@ -71,9 +71,7 @@ const messages = {
|
|
|
71
71
|
[subjectCategories.ACTIVE_SUBJECTS]: 'Aktive',
|
|
72
72
|
[subjectCategories.ARCHIVE_SUBJECTS]: 'Utgåtte',
|
|
73
73
|
[subjectCategories.BETA_SUBJECTS]: 'Kommende',
|
|
74
|
-
[
|
|
75
|
-
[subjectCategories.PROGRAMME_SUBJECTS]: 'Programfag SF',
|
|
76
|
-
[subjectCategories.SPECIALIZED_SUBJECTS]: 'Yrkesfag',
|
|
74
|
+
[subjectTypes.RESOURCE_COLLECTION]: 'Andre ressurser',
|
|
77
75
|
},
|
|
78
76
|
subjectTypes: {
|
|
79
77
|
[subjectTypes.SUBJECT]: 'Fag',
|
|
@@ -955,9 +953,9 @@ const messages = {
|
|
|
955
953
|
loggedInAs: 'Du er pålogget som {{role}}.',
|
|
956
954
|
loggedInAsButton: 'Du er pålogget som {{role}}',
|
|
957
955
|
role: {
|
|
958
|
-
employee: '
|
|
959
|
-
staff: '
|
|
960
|
-
student: '
|
|
956
|
+
employee: 'lærer',
|
|
957
|
+
staff: 'ansatt',
|
|
958
|
+
student: 'elev',
|
|
961
959
|
},
|
|
962
960
|
buttonLogIn: 'Logg inn med Feide',
|
|
963
961
|
buttonLogOut: 'Logg ut',
|
|
@@ -972,7 +970,7 @@ const messages = {
|
|
|
972
970
|
resource: {
|
|
973
971
|
accessDenied: 'Vi beklager, men denne ressursen er bare for lærere innlogget med Feide.',
|
|
974
972
|
},
|
|
975
|
-
primarySchool: '
|
|
973
|
+
primarySchool: 'hovedskole',
|
|
976
974
|
name: 'Navn',
|
|
977
975
|
mail: 'E-post',
|
|
978
976
|
username: 'Brukernavn',
|
|
@@ -982,7 +980,7 @@ const messages = {
|
|
|
982
980
|
other: 'Andre grupper',
|
|
983
981
|
},
|
|
984
982
|
wrongUserInfoDisclaimer:
|
|
985
|
-
'Dersom
|
|
983
|
+
'Dersom informasjonen er feil, må den oppdateres av vertsorganisasjon/skoleeier som brukeren tilhører. Oversikt over brukerstøtte finnes her: ',
|
|
986
984
|
},
|
|
987
985
|
checkOutNewFeature: 'Sjekk ut ny funksjonalitet',
|
|
988
986
|
slateBlockMenu: {
|
|
@@ -1043,11 +1041,11 @@ const messages = {
|
|
|
1043
1041
|
loginResourcePitch: 'Ønsker du å favorittmerke denne siden?',
|
|
1044
1042
|
loginWelcome: 'Velkommen til NDLA! Her kan du organisere fagstoffet på <i>din</i> måte!',
|
|
1045
1043
|
welcome:
|
|
1046
|
-
'Velkommen til Min NDLA! Nå kan du lagre dine
|
|
1047
|
-
read: {
|
|
1048
|
-
privacy: '
|
|
1044
|
+
'Velkommen til Min NDLA! Nå kan du lagre favorittressursene dine fra NDLA og organisere dem i mapper og med emneknagger.',
|
|
1045
|
+
read: { read: 'Les', our: ' vår.' },
|
|
1046
|
+
privacy: 'personvernerklæringa',
|
|
1049
1047
|
privacyLink: 'https://om.ndla.no/gdpr',
|
|
1050
|
-
questions: { question: 'Lurer du på noe?', ask: 'Spør
|
|
1048
|
+
questions: { question: 'Lurer du på noe?', ask: 'Spør NDLA' },
|
|
1051
1049
|
wishToDelete: 'Vil du ikke ha brukerprofil hos oss lenger?',
|
|
1052
1050
|
terms: {
|
|
1053
1051
|
terms: 'Vilkår for bruk',
|
|
@@ -1060,16 +1058,16 @@ const messages = {
|
|
|
1060
1058
|
feideWrongInfo:
|
|
1061
1059
|
'Dersom informasjon er feil, så må dette oppdateres av vertsorganisasjon/skoleeier som brukeren tilhører. Oversikt over brukerstøtte finnes her: feide.no/brukerstøtte',
|
|
1062
1060
|
storageInfo: {
|
|
1063
|
-
title: 'Slik lagrer du dine
|
|
1064
|
-
text: 'Klikk på hjerteknappen for å lagre en ressurs. Du vil da få mulighet til å lagre ressursen i
|
|
1061
|
+
title: 'Slik lagrer du favorittressursene dine fra NDLA',
|
|
1062
|
+
text: 'Klikk på hjerteknappen for å lagre en ressurs. Du vil da få mulighet til å lagre ressursen i ei mappe.',
|
|
1065
1063
|
},
|
|
1066
1064
|
folderInfo: {
|
|
1067
|
-
title: 'Slik organiserer du dine
|
|
1068
|
-
text: 'Klikk på
|
|
1065
|
+
title: 'Slik organiserer du favorittressursene dine i mapper',
|
|
1066
|
+
text: 'Klikk på <strong>Mine mapper</strong> i menyen til venstre for å komme til mappeoversikten. Her kan du opprette nye mapper og undermapper. Du kan også opprette ei ny mappe i dialogvinduet som kommer når du klikker på et hjerte i en ressurs.',
|
|
1069
1067
|
},
|
|
1070
1068
|
tagInfo: {
|
|
1071
|
-
title: 'Slik tagger du dine
|
|
1072
|
-
text: 'Når du lagrer en ressurs får du mulighet til å markere ressursen med en emneknagg. Emneknaggen er et nøkkelord du kan bruke til å finne tilbake til ressurser på tvers av mapper. Du finner alle emneknaggene du har brukt ved å velge
|
|
1069
|
+
title: 'Slik tagger du favorittressursene dine',
|
|
1070
|
+
text: 'Når du lagrer en ressurs, får du mulighet til å markere ressursen med en emneknagg. Emneknaggen er et nøkkelord du kan bruke til å finne tilbake til ressurser på tvers av mapper. Du finner alle emneknaggene du har brukt, ved å velge <strong>Mine emneknagger</strong> i venstremenyen. Her kan du også se hvilke ressurser du har markert med hvilken emneknagg.',
|
|
1073
1071
|
},
|
|
1074
1072
|
},
|
|
1075
1073
|
resource: {
|