@ndla/ui 22.0.0 → 22.0.3
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/Article/ArticleByline.js +7 -4
- package/es/Article/ArticleNotions.js +10 -6
- package/es/Breadcrumb/ActionBreadcrumb.js +4 -4
- package/es/CompetenceGoals/CompetenceGoalsDialog.js +8 -4
- package/es/ContentLoader/index.js +8 -3
- package/es/Filter/FilterButtons.js +10 -9
- package/es/Footer/FooterPrivacy.js +3 -2
- package/es/Masthead/MastheadSearchModal.js +4 -3
- package/es/Resource/BlockResource.js +105 -18
- package/es/Resource/ListResource.js +124 -26
- package/es/ResourcesWrapper/ResourcesTopicTitle.js +7 -4
- package/es/Search/ContentTypeResult.js +1 -2
- package/es/SearchTypeResult/PopupFilter.js +12 -8
- package/es/SearchTypeResult/SearchItem.js +8 -8
- package/es/SearchTypeResult/components/ItemContexts.js +8 -7
- package/es/SnackBar/DefaultSnackbar.js +56 -0
- package/es/SnackBar/SnackbarProvider.js +179 -0
- package/es/SnackBar/index.js +2 -2
- package/es/Topic/Topic.js +21 -20
- package/es/TreeStructure/FolderItem.js +64 -44
- package/es/TreeStructure/FolderItems.js +4 -4
- package/es/TreeStructure/TreeStructure.js +15 -8
- package/es/User/AuthModal.js +9 -8
- package/es/index.js +1 -1
- package/es/locale/messages-en.js +26 -5
- package/es/locale/messages-nb.js +26 -5
- package/es/locale/messages-nn.js +26 -5
- package/es/locale/messages-se.js +26 -5
- package/es/locale/messages-sma.js +26 -5
- package/lib/Article/ArticleByline.js +7 -4
- package/lib/Article/ArticleNotions.js +10 -6
- package/lib/Breadcrumb/ActionBreadcrumb.js +4 -4
- package/lib/CompetenceGoals/CompetenceGoalsDialog.js +8 -4
- package/lib/ContentLoader/index.d.ts +4 -8
- package/lib/ContentLoader/index.js +8 -3
- package/lib/Filter/FilterButtons.js +10 -9
- package/lib/Footer/FooterPrivacy.js +3 -2
- package/lib/Masthead/MastheadSearchModal.js +4 -3
- package/lib/Resource/BlockResource.d.ts +2 -1
- package/lib/Resource/BlockResource.js +106 -18
- package/lib/Resource/ListResource.d.ts +2 -1
- package/lib/Resource/ListResource.js +125 -26
- package/lib/ResourcesWrapper/ResourcesTopicTitle.js +7 -4
- package/lib/Search/ContentTypeResult.js +1 -2
- package/lib/SearchTypeResult/PopupFilter.js +12 -8
- package/lib/SearchTypeResult/SearchItem.js +8 -8
- package/lib/SearchTypeResult/components/ItemContexts.js +8 -7
- package/lib/SnackBar/DefaultSnackbar.d.ts +11 -0
- package/lib/SnackBar/DefaultSnackbar.js +70 -0
- package/lib/SnackBar/SnackbarProvider.d.ts +32 -0
- package/lib/SnackBar/SnackbarProvider.js +197 -0
- package/lib/SnackBar/index.d.ts +3 -3
- package/lib/SnackBar/index.js +23 -3
- package/lib/Topic/Topic.js +21 -20
- package/lib/TreeStructure/FolderItem.d.ts +1 -1
- package/lib/TreeStructure/FolderItem.js +65 -44
- package/lib/TreeStructure/FolderItems.js +4 -4
- package/lib/TreeStructure/TreeStructure.d.ts +1 -1
- package/lib/TreeStructure/TreeStructure.js +15 -8
- package/lib/TreeStructure/types.d.ts +2 -1
- package/lib/User/AuthModal.js +9 -8
- package/lib/index.d.ts +2 -2
- package/lib/index.js +24 -3
- package/lib/locale/messages-en.d.ts +21 -0
- package/lib/locale/messages-en.js +26 -5
- package/lib/locale/messages-nb.d.ts +21 -0
- package/lib/locale/messages-nb.js +26 -5
- package/lib/locale/messages-nn.d.ts +21 -0
- package/lib/locale/messages-nn.js +26 -5
- package/lib/locale/messages-se.d.ts +21 -0
- package/lib/locale/messages-se.js +26 -5
- package/lib/locale/messages-sma.d.ts +21 -0
- package/lib/locale/messages-sma.js +26 -5
- package/package.json +6 -6
- package/src/Article/ArticleByline.tsx +4 -1
- package/src/Article/ArticleNotions.tsx +4 -1
- package/src/Breadcrumb/ActionBreadcrumb.tsx +1 -1
- package/src/CompetenceGoals/CompetenceGoalsDialog.jsx +5 -2
- package/src/ContentLoader/index.tsx +9 -9
- package/src/Filter/FilterButtons.tsx +1 -0
- package/src/Footer/FooterPrivacy.tsx +4 -1
- package/src/Masthead/MastheadSearchModal.tsx +1 -0
- package/src/Resource/BlockResource.tsx +65 -4
- package/src/Resource/ListResource.tsx +85 -10
- package/src/ResourcesWrapper/ResourcesTopicTitle.tsx +5 -1
- package/src/Search/ContentTypeResult.tsx +0 -1
- package/src/SearchTypeResult/PopupFilter.tsx +3 -1
- package/src/SearchTypeResult/SearchItem.tsx +0 -1
- package/src/SearchTypeResult/components/ItemContexts.tsx +1 -0
- package/src/SnackBar/DefaultSnackbar.tsx +70 -0
- package/src/SnackBar/SnackbarProvider.tsx +147 -0
- package/src/SnackBar/index.ts +3 -5
- package/src/Topic/Topic.tsx +1 -0
- package/src/TreeStructure/FolderItem.tsx +56 -37
- package/src/TreeStructure/FolderItems.tsx +3 -2
- package/src/TreeStructure/TreeStructure.tsx +9 -4
- package/src/TreeStructure/types.ts +2 -1
- package/src/User/AuthModal.tsx +2 -1
- package/src/index.ts +2 -2
- package/src/locale/messages-en.ts +21 -0
- package/src/locale/messages-nb.ts +21 -0
- package/src/locale/messages-nn.ts +21 -0
- package/src/locale/messages-se.ts +21 -0
- package/src/locale/messages-sma.ts +21 -0
- package/es/SnackBar/SnackBar.js +0 -117
- package/lib/SnackBar/SnackBar.d.ts +0 -23
- package/lib/SnackBar/SnackBar.js +0 -127
- package/src/SnackBar/SnackBar.tsx +0 -183
|
@@ -7,8 +7,10 @@
|
|
|
7
7
|
*/
|
|
8
8
|
|
|
9
9
|
import React, { KeyboardEvent, MouseEvent, useEffect, useRef } from 'react';
|
|
10
|
+
import { useTranslation } from 'react-i18next';
|
|
10
11
|
import styled from '@emotion/styled';
|
|
11
12
|
import { ArrowDropDown } from '@ndla/icons/common';
|
|
13
|
+
import { Done } from '@ndla/icons/editor';
|
|
12
14
|
import { MenuButton } from '@ndla/button';
|
|
13
15
|
import { FolderOutlined } from '@ndla/icons/contentType';
|
|
14
16
|
import { colors, spacing, misc, animations } from '@ndla/core';
|
|
@@ -40,15 +42,11 @@ const FolderItemWrapper = styled.div`
|
|
|
40
42
|
align-items: center;
|
|
41
43
|
`;
|
|
42
44
|
|
|
43
|
-
const WrapperForFolderChild = styled.div
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
&:focus,
|
|
49
|
-
&:focus-within {
|
|
50
|
-
opacity: 1;
|
|
51
|
-
}
|
|
45
|
+
const WrapperForFolderChild = styled.div`
|
|
46
|
+
display: flex;
|
|
47
|
+
flex-direction: row;
|
|
48
|
+
align-items: center;
|
|
49
|
+
gap: ${spacing.xsmall};
|
|
52
50
|
`;
|
|
53
51
|
|
|
54
52
|
const shouldForwardProp = (name: string) => !['selected', 'noArrow'].includes(name);
|
|
@@ -59,9 +57,24 @@ interface FolderNameProps {
|
|
|
59
57
|
}
|
|
60
58
|
|
|
61
59
|
const FolderName = styled('button', { shouldForwardProp })<FolderNameProps>`
|
|
62
|
-
|
|
60
|
+
cursor: pointer;
|
|
61
|
+
padding: ${spacing.xsmall};
|
|
62
|
+
margin: 0;
|
|
63
|
+
margin-left: ${({ noArrow }) => (noArrow ? `29px` : `0px`)};
|
|
64
|
+
flex-grow: 1;
|
|
65
|
+
display: grid;
|
|
66
|
+
grid-template-columns: auto 1fr auto;
|
|
67
|
+
align-items: center;
|
|
68
|
+
gap: ${spacing.xxsmall};
|
|
69
|
+
border: 0;
|
|
70
|
+
border-radius: ${misc.borderRadius};
|
|
71
|
+
box-shadow: none;
|
|
63
72
|
background: ${({ selected }) => (selected ? colors.brand.lighter : 'transparent')};
|
|
64
73
|
color: ${colors.text.primary};
|
|
74
|
+
transition: ${animations.durations.superFast};
|
|
75
|
+
text-align: left;
|
|
76
|
+
line-height: 1;
|
|
77
|
+
word-break: break-word;
|
|
65
78
|
&:hover,
|
|
66
79
|
&:focus {
|
|
67
80
|
background: ${({ selected }) => (selected ? colors.brand.light : colors.brand.lightest)};
|
|
@@ -70,19 +83,10 @@ const FolderName = styled('button', { shouldForwardProp })<FolderNameProps>`
|
|
|
70
83
|
opacity: 1;
|
|
71
84
|
}
|
|
72
85
|
}
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
gap: ${spacing.xxsmall};
|
|
78
|
-
align-items: center;
|
|
79
|
-
cursor: pointer;
|
|
80
|
-
padding: ${spacing.xsmall};
|
|
81
|
-
margin: 0;
|
|
82
|
-
margin-left: ${({ noArrow }) => (noArrow ? `29px` : `0px`)};
|
|
83
|
-
flex-grow: 1;
|
|
84
|
-
box-shadow: none;
|
|
85
|
-
text-align: left;
|
|
86
|
+
`;
|
|
87
|
+
|
|
88
|
+
const StyledDone = styled(Done)`
|
|
89
|
+
color: ${colors.support.green};
|
|
86
90
|
`;
|
|
87
91
|
|
|
88
92
|
const FolderNameLink = FolderName.withComponent(SafeLink);
|
|
@@ -110,24 +114,30 @@ const FolderItem = ({
|
|
|
110
114
|
openOnFolderClick,
|
|
111
115
|
setFocusedId,
|
|
112
116
|
setSelectedFolder,
|
|
117
|
+
targetResource,
|
|
113
118
|
visibleFolders,
|
|
114
119
|
}: Props) => {
|
|
120
|
+
const { t } = useTranslation();
|
|
115
121
|
const { id, icon, name } = folder;
|
|
116
122
|
const ref = useRef<HTMLButtonElement & HTMLAnchorElement>(null);
|
|
117
123
|
const selected = selectedFolder && selectedFolder.id === id;
|
|
118
124
|
const focused = focusedFolderId === id;
|
|
119
125
|
|
|
120
126
|
const handleClickFolder = () => {
|
|
121
|
-
setSelectedFolder(folder);
|
|
122
|
-
setFocusedId(id);
|
|
123
|
-
onSelectFolder?.(id);
|
|
124
127
|
if (openOnFolderClick) {
|
|
125
|
-
if (
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
128
|
+
if (selected) {
|
|
129
|
+
if (isOpen) {
|
|
130
|
+
onCloseFolder(id);
|
|
131
|
+
} else {
|
|
132
|
+
onOpenFolder(id);
|
|
133
|
+
}
|
|
129
134
|
}
|
|
130
135
|
}
|
|
136
|
+
if (!selected) {
|
|
137
|
+
setSelectedFolder(folder);
|
|
138
|
+
setFocusedId(id);
|
|
139
|
+
}
|
|
140
|
+
onSelectFolder?.(id);
|
|
131
141
|
};
|
|
132
142
|
|
|
133
143
|
useEffect(() => {
|
|
@@ -144,7 +154,10 @@ const FolderItem = ({
|
|
|
144
154
|
};
|
|
145
155
|
});
|
|
146
156
|
|
|
147
|
-
const linkPath = `/minndla${level >
|
|
157
|
+
const linkPath = `/minndla${level > 0 ? '/folders' : ''}/${id}`;
|
|
158
|
+
|
|
159
|
+
const containsResource =
|
|
160
|
+
targetResource && folder.resources.some((resource) => resource.resourceId === targetResource.resourceId);
|
|
148
161
|
|
|
149
162
|
return (
|
|
150
163
|
<FolderItemWrapper>
|
|
@@ -170,12 +183,18 @@ const FolderItem = ({
|
|
|
170
183
|
onClick={handleClickFolder}>
|
|
171
184
|
{icon || <FolderOutlined />}
|
|
172
185
|
{name}
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
186
|
+
<WrapperForFolderChild>
|
|
187
|
+
{containsResource && <StyledDone title={t('myNdla.alreadyInFolder')} />}
|
|
188
|
+
{actions && (
|
|
189
|
+
<MenuButton
|
|
190
|
+
onClick={(e) => e.stopPropagation()}
|
|
191
|
+
size="xsmall"
|
|
192
|
+
menuItems={actions}
|
|
193
|
+
tabIndex={selected || id === focusedFolderId ? 0 : -1}
|
|
194
|
+
/>
|
|
195
|
+
)}
|
|
177
196
|
</WrapperForFolderChild>
|
|
178
|
-
|
|
197
|
+
</FolderName>
|
|
179
198
|
</>
|
|
180
199
|
) : (
|
|
181
200
|
<FolderNameLink
|
|
@@ -185,7 +204,7 @@ const FolderItem = ({
|
|
|
185
204
|
}
|
|
186
205
|
noArrow={hideArrow}
|
|
187
206
|
to={loading ? '' : linkPath}
|
|
188
|
-
tabIndex={selected || focused || level ===
|
|
207
|
+
tabIndex={selected || focused || level === 0 ? 0 : -1}
|
|
189
208
|
selected={selected}
|
|
190
209
|
onFocus={() => setFocusedId(id)}
|
|
191
210
|
onClick={handleClickFolder}>
|
|
@@ -52,10 +52,11 @@ const FolderItems = ({
|
|
|
52
52
|
openFolders,
|
|
53
53
|
...rest
|
|
54
54
|
}: FolderItemsProps) => (
|
|
55
|
-
<StyledUL role="group" firstLevel={level ===
|
|
55
|
+
<StyledUL role="group" firstLevel={level === 0}>
|
|
56
56
|
{folders.map((folder) => {
|
|
57
57
|
const { subfolders, id } = folder;
|
|
58
58
|
const isOpen = openFolders?.includes(id);
|
|
59
|
+
|
|
59
60
|
return (
|
|
60
61
|
<StyledLI key={id} role="treeitem">
|
|
61
62
|
<div>
|
|
@@ -65,7 +66,7 @@ const FolderItems = ({
|
|
|
65
66
|
isOpen={isOpen}
|
|
66
67
|
level={level}
|
|
67
68
|
loading={loading}
|
|
68
|
-
noPaddingWhenArrowIsHidden={editable && level ===
|
|
69
|
+
noPaddingWhenArrowIsHidden={editable && level === 0 && subfolders?.length === 0}
|
|
69
70
|
{...rest}
|
|
70
71
|
/>
|
|
71
72
|
</div>
|
|
@@ -52,6 +52,7 @@ const TreeStructure = ({
|
|
|
52
52
|
onNewFolder,
|
|
53
53
|
onSelectFolder,
|
|
54
54
|
openOnFolderClick,
|
|
55
|
+
targetResource,
|
|
55
56
|
}: TreeStructureProps) => {
|
|
56
57
|
const { t } = useTranslation();
|
|
57
58
|
|
|
@@ -68,10 +69,13 @@ const TreeStructure = ({
|
|
|
68
69
|
|
|
69
70
|
useEffect(() => {
|
|
70
71
|
if (defaultOpenFolders) {
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
72
|
+
if (!defaultOpenFolders.every((element) => openFolders.includes(element))) {
|
|
73
|
+
setOpenFolders((prev) => {
|
|
74
|
+
return uniq(defaultOpenFolders.concat(prev));
|
|
75
|
+
});
|
|
76
|
+
}
|
|
74
77
|
}
|
|
78
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
75
79
|
}, [defaultOpenFolders]);
|
|
76
80
|
|
|
77
81
|
useEffect(() => {
|
|
@@ -136,7 +140,7 @@ const TreeStructure = ({
|
|
|
136
140
|
focusedFolderId={focusedId}
|
|
137
141
|
menuItems={menuItems}
|
|
138
142
|
folders={folders}
|
|
139
|
-
level={
|
|
143
|
+
level={0}
|
|
140
144
|
loading={loading}
|
|
141
145
|
selectedFolder={selectedFolder}
|
|
142
146
|
maximumLevelsOfFoldersAllowed={maximumLevelsOfFoldersAllowed}
|
|
@@ -150,6 +154,7 @@ const TreeStructure = ({
|
|
|
150
154
|
openOnFolderClick={openOnFolderClick}
|
|
151
155
|
setFocusedId={setFocusedId}
|
|
152
156
|
setSelectedFolder={setSelectedFolder}
|
|
157
|
+
targetResource={targetResource}
|
|
153
158
|
visibleFolders={visibleFolderIds}
|
|
154
159
|
/>
|
|
155
160
|
</TreeStructureStyledWrapper>
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
*/
|
|
8
8
|
|
|
9
9
|
import { MouseEvent, ReactNode } from 'react';
|
|
10
|
-
import { IFolder } from '@ndla/types-learningpath-api';
|
|
10
|
+
import { IFolder, IResource } from '@ndla/types-learningpath-api';
|
|
11
11
|
import { MenuItemProps } from '@ndla/button/src';
|
|
12
12
|
|
|
13
13
|
export interface FolderType extends IFolder {
|
|
@@ -23,6 +23,7 @@ export interface CommonTreeStructureProps {
|
|
|
23
23
|
onSelectFolder?: (id: string) => void;
|
|
24
24
|
openOnFolderClick?: boolean;
|
|
25
25
|
menuItems?: TreeStructureMenuProps[];
|
|
26
|
+
targetResource?: IResource;
|
|
26
27
|
}
|
|
27
28
|
|
|
28
29
|
export interface CommonFolderItemsProps extends CommonTreeStructureProps {
|
package/src/User/AuthModal.tsx
CHANGED
|
@@ -83,7 +83,8 @@ const AuthModal = ({
|
|
|
83
83
|
position={position}
|
|
84
84
|
isOpen={isOpen}
|
|
85
85
|
onClose={onClose}
|
|
86
|
-
controllable={!activateButton}
|
|
86
|
+
controllable={!activateButton}
|
|
87
|
+
label={isAuthenticated ? t('user.modal.isAuth') : t('user.modal.isNotAuth')}>
|
|
87
88
|
{(onClose: () => void) => (
|
|
88
89
|
<StyledModalBody>
|
|
89
90
|
<StyledModalHeader>
|
package/src/index.ts
CHANGED
|
@@ -240,8 +240,8 @@ export type { ListResourceProps } from './Resource';
|
|
|
240
240
|
export type { TagType } from './TagSelector';
|
|
241
241
|
export { TagSelector } from './TagSelector';
|
|
242
242
|
|
|
243
|
-
export
|
|
244
|
-
export {
|
|
243
|
+
export { SnackbarProvider, useSnack, BaseSnack, DefaultSnackbar } from './SnackBar';
|
|
244
|
+
export type { Snack, SnackContext } from './SnackBar';
|
|
245
245
|
export { InfoBlock } from './InfoBlock';
|
|
246
246
|
export { TreeStructure } from './TreeStructure';
|
|
247
247
|
export type { FolderType, TreeStructureProps, TreeStructureMenuProps } from './TreeStructure';
|
|
@@ -171,6 +171,7 @@ const messages = {
|
|
|
171
171
|
contextModal: {
|
|
172
172
|
button: '+ {{count}} more contexts',
|
|
173
173
|
heading: 'The resource is used in several contexts',
|
|
174
|
+
ariaLabel: 'View more contexts',
|
|
174
175
|
},
|
|
175
176
|
},
|
|
176
177
|
|
|
@@ -217,6 +218,7 @@ const messages = {
|
|
|
217
218
|
articleErrorDescription: 'Sorry, an error occurred while loading the topic description.',
|
|
218
219
|
topic: 'TOPIC',
|
|
219
220
|
topics: 'Topics',
|
|
221
|
+
imageModal: 'View full size image',
|
|
220
222
|
},
|
|
221
223
|
welcomePage: {
|
|
222
224
|
search: 'Search',
|
|
@@ -274,6 +276,7 @@ const messages = {
|
|
|
274
276
|
search: 'Search',
|
|
275
277
|
toFrontpage: 'To frontpage',
|
|
276
278
|
subjectOverview: 'All subjects',
|
|
279
|
+
modalLabel: 'Choose content',
|
|
277
280
|
backToSubjectFrontpage: 'Back to subject frontpage',
|
|
278
281
|
title: 'Content',
|
|
279
282
|
subjectPage: 'Subject front page',
|
|
@@ -394,6 +397,7 @@ const messages = {
|
|
|
394
397
|
competenceGoals: {
|
|
395
398
|
competenceGoal: 'competence-goal',
|
|
396
399
|
title: 'Competence goals and curriculum ',
|
|
400
|
+
modalText: 'Explore curriculum links',
|
|
397
401
|
closeCompetenceGoals: 'Close competence goals',
|
|
398
402
|
showCompetenceGoals: 'Show competence goals',
|
|
399
403
|
openCompentenceGoalsFilter: 'Filter competence goals',
|
|
@@ -962,6 +966,8 @@ const messages = {
|
|
|
962
966
|
collectedInfo: 'We have collected the following information about you from Feide:',
|
|
963
967
|
general: 'Resources that require logging in with Feide, are tagged with the icon',
|
|
964
968
|
topic: 'Log in with Feide to access this topic.',
|
|
969
|
+
isAuth: 'User info',
|
|
970
|
+
isNotAuth: 'Log in with Feide',
|
|
965
971
|
},
|
|
966
972
|
resource: {
|
|
967
973
|
accessDenied: 'We are sorry, but this resource is only available to teachers who are logged in with Feide.',
|
|
@@ -996,7 +1002,10 @@ const messages = {
|
|
|
996
1002
|
delete: 'Delete',
|
|
997
1003
|
edit: 'Edit',
|
|
998
1004
|
missingName: 'Folder name required',
|
|
1005
|
+
folderDeleted: '"{{folderName}}" deleted',
|
|
999
1006
|
},
|
|
1007
|
+
tags: '{{count}} tag',
|
|
1008
|
+
tags_plural: '{{count}} tags',
|
|
1000
1009
|
confirmDeleteFolder: 'Are you sure you want to delete this folder? This process cannot be undone.',
|
|
1001
1010
|
confirmDeleteTag: 'Are you sure you want to delete this tag? This process cannot be undone.',
|
|
1002
1011
|
myFolders: 'My folders',
|
|
@@ -1007,6 +1016,7 @@ const messages = {
|
|
|
1007
1016
|
favourites: 'Favourites',
|
|
1008
1017
|
addToFavourites: 'Add to my favourites',
|
|
1009
1018
|
alreadyFavourited: 'Already in my favourites',
|
|
1019
|
+
alreadyInFolder: 'Already in folder',
|
|
1010
1020
|
help: 'Help',
|
|
1011
1021
|
more: 'More options',
|
|
1012
1022
|
listView: 'List view',
|
|
@@ -1015,6 +1025,9 @@ const messages = {
|
|
|
1015
1025
|
myPage: {
|
|
1016
1026
|
myPage: 'My page',
|
|
1017
1027
|
logout: 'Log out of My NDLA',
|
|
1028
|
+
loginTerms: 'Log in with Feide to receive access. By logging on your accept your terms of service',
|
|
1029
|
+
loginResourcePitch: 'Do you want to favorite this page?',
|
|
1030
|
+
loginWelcome: 'Welcome to My NDLA! This page allows you to organize your articles in your <i>own</i> way!',
|
|
1018
1031
|
deleteAccount: 'Delete My NDLA',
|
|
1019
1032
|
welcome:
|
|
1020
1033
|
'Welcome to my NDLA! You can now save your favourite resources from NDLA and organise them in folders with tags',
|
|
@@ -1047,9 +1060,17 @@ const messages = {
|
|
|
1047
1060
|
resource: {
|
|
1048
1061
|
add: 'Add folder/tag',
|
|
1049
1062
|
remove: 'Remove',
|
|
1063
|
+
removeTitle: 'Remove resource',
|
|
1064
|
+
confirmRemove: 'Are you sure you want to remove the resource from this folder?',
|
|
1050
1065
|
copyLink: 'Copy link to this page',
|
|
1066
|
+
linkCopied: 'Copied to clipboard',
|
|
1051
1067
|
addToMyNdla: 'Add to My NDLA',
|
|
1052
1068
|
addedToMyNdla: 'Added to My NDLA',
|
|
1069
|
+
addedToFolder: 'Resource added to "{{folderName}}"',
|
|
1070
|
+
removedFromFolder: 'Removed from "{{folderName}}"',
|
|
1071
|
+
titleUpdated: 'Title updated',
|
|
1072
|
+
tagsUpdated: 'Tags updated',
|
|
1073
|
+
show: 'Show',
|
|
1053
1074
|
},
|
|
1054
1075
|
},
|
|
1055
1076
|
snackbar: {
|
|
@@ -171,6 +171,7 @@ const messages = {
|
|
|
171
171
|
contextModal: {
|
|
172
172
|
button: '+ {{count}} flere steder',
|
|
173
173
|
heading: 'Ressursen er brukt flere steder',
|
|
174
|
+
ariaLabel: 'Se flere kontekster',
|
|
174
175
|
},
|
|
175
176
|
},
|
|
176
177
|
subjectPage: {
|
|
@@ -216,6 +217,7 @@ const messages = {
|
|
|
216
217
|
articleErrorDescription: 'Beklager, en feil oppstod under lasting av emnebeskrivelsen.',
|
|
217
218
|
topic: 'EMNE',
|
|
218
219
|
topics: 'Emner',
|
|
220
|
+
imageModal: 'Se bildet i full størrelse',
|
|
219
221
|
},
|
|
220
222
|
welcomePage: {
|
|
221
223
|
search: 'Søk',
|
|
@@ -274,6 +276,7 @@ const messages = {
|
|
|
274
276
|
toFrontpage: 'Til forsiden',
|
|
275
277
|
subjectOverview: 'Alle fag',
|
|
276
278
|
title: 'Innhold',
|
|
279
|
+
modalLabel: 'Velg innhold',
|
|
277
280
|
subjectPage: 'Fagforside',
|
|
278
281
|
backToSubjectFrontpage: 'Tilbake til fagforsiden',
|
|
279
282
|
openFilter: 'Filter',
|
|
@@ -392,6 +395,7 @@ const messages = {
|
|
|
392
395
|
competenceGoals: {
|
|
393
396
|
competenceGoal: 'kompetansemål',
|
|
394
397
|
title: 'Kompetansemål og læreplan',
|
|
398
|
+
modalText: 'Utforsk læreplankoblinger',
|
|
395
399
|
closeCompetenceGoals: 'Lukk kompetansemål',
|
|
396
400
|
showCompetenceGoals: 'Vis kompetansemål',
|
|
397
401
|
openCompentenceGoalsFilter: 'Filtrer kompetansemål',
|
|
@@ -960,6 +964,8 @@ const messages = {
|
|
|
960
964
|
collectedInfo: 'Vi har hentet følgende informasjon om deg fra Feide:',
|
|
961
965
|
general: 'Ressursene som krever pålogging med Feide, vises med ikonet',
|
|
962
966
|
topic: 'Logg inn med Feide for å få tilgang til dette emnet.',
|
|
967
|
+
isAuth: 'Brukerinfo',
|
|
968
|
+
isNotAuth: 'Logg inn med Feide',
|
|
963
969
|
},
|
|
964
970
|
resource: {
|
|
965
971
|
accessDenied: 'Vi beklager, men denne ressursen er bare for lærere innlogget med Feide.',
|
|
@@ -994,7 +1000,10 @@ const messages = {
|
|
|
994
1000
|
delete: 'Slett',
|
|
995
1001
|
edit: 'Rediger',
|
|
996
1002
|
missingName: 'Mappenavn er påkrevd',
|
|
1003
|
+
folderDeleted: '"{{folderName}}" er slettet',
|
|
997
1004
|
},
|
|
1005
|
+
tags: '{{count}} tag',
|
|
1006
|
+
tags_plural: '{{count}} tags',
|
|
998
1007
|
confirmDeleteFolder: 'Er du sikker på at du vil slette mappen? Denne handlingen kan ikke angres.',
|
|
999
1008
|
confirmDeleteTag: 'Er du sikker på at du vil slette tag? Denne handlingen kan ikke angres.',
|
|
1000
1009
|
myFolders: 'Mine mapper',
|
|
@@ -1005,6 +1014,7 @@ const messages = {
|
|
|
1005
1014
|
favourites: 'Favoritter',
|
|
1006
1015
|
addToFavourites: 'Legg til i mine favoritter',
|
|
1007
1016
|
alreadyFavourited: 'Allerede lagt til i mine favoritter',
|
|
1017
|
+
alreadyInFolder: 'Finnes allerede i mappen',
|
|
1008
1018
|
help: 'Hjelp',
|
|
1009
1019
|
more: 'Flere valg',
|
|
1010
1020
|
listView: 'Listevisning',
|
|
@@ -1014,6 +1024,9 @@ const messages = {
|
|
|
1014
1024
|
myPage: 'Min side',
|
|
1015
1025
|
deleteAccount: 'Slett Min NDLA',
|
|
1016
1026
|
logout: 'Logg ut av Min NDLA',
|
|
1027
|
+
loginTerms: 'Logg på med Feide for å få tilgang. Ved å logge på godkjenner du våre vilkår for bruk',
|
|
1028
|
+
loginResourcePitch: 'Ønsker du å favorittmerke denne siden?',
|
|
1029
|
+
loginWelcome: 'Velkommen til NDLA! Her kan du organisere fagstoffet på <i>din</i> måte!',
|
|
1017
1030
|
welcome:
|
|
1018
1031
|
'Velkommen til Min NDLA! Nå kan du lagre dine favorittressurser fra NDLA og organisere dem slik du ønsker i mapper og med tags.',
|
|
1019
1032
|
read: { our: 'Les våre', ours: 'Les vår' },
|
|
@@ -1045,9 +1058,17 @@ const messages = {
|
|
|
1045
1058
|
resource: {
|
|
1046
1059
|
add: 'Legg til mappe/tag',
|
|
1047
1060
|
remove: 'Fjern',
|
|
1061
|
+
removeTitle: 'Fjern ressurs',
|
|
1062
|
+
confirmRemove: 'Er du sikker på at du ønsker å fjerne ressursen fra denne mappen?',
|
|
1048
1063
|
copyLink: 'Kopier lenke til siden',
|
|
1064
|
+
linkCopied: 'Kopiert til utklippstavle',
|
|
1049
1065
|
addToMyNdla: 'Legg i Min NDLA',
|
|
1050
1066
|
addedToMyNdla: 'Lagt i Min NDLA',
|
|
1067
|
+
addedToFolder: 'Ressurs er lagt i "{{folderName}}"',
|
|
1068
|
+
removedFromFolder: 'Fjernet fra "{{folderName}}"',
|
|
1069
|
+
titleUpdated: 'Tittel oppdatert',
|
|
1070
|
+
tagsUpdated: 'Tags oppdatert',
|
|
1071
|
+
show: 'Vis',
|
|
1051
1072
|
},
|
|
1052
1073
|
},
|
|
1053
1074
|
snackbar: {
|
|
@@ -171,6 +171,7 @@ const messages = {
|
|
|
171
171
|
contextModal: {
|
|
172
172
|
button: '+ {{count}} fleire stader',
|
|
173
173
|
heading: 'Ressursen er brukt fleire stader',
|
|
174
|
+
ariaLabel: 'Sjå fleire kontekstar',
|
|
174
175
|
},
|
|
175
176
|
},
|
|
176
177
|
subjectPage: {
|
|
@@ -216,6 +217,7 @@ const messages = {
|
|
|
216
217
|
articleErrorDescription: 'Orsak, ein feil oppstod under lasting av emneskildringa.',
|
|
217
218
|
topic: 'EMNE',
|
|
218
219
|
topics: 'Emne',
|
|
220
|
+
imageModal: 'Sjå biletet i full storleik',
|
|
219
221
|
},
|
|
220
222
|
welcomePage: {
|
|
221
223
|
search: 'Søk',
|
|
@@ -274,6 +276,7 @@ const messages = {
|
|
|
274
276
|
toFrontpage: 'Til framsida',
|
|
275
277
|
subjectOverview: 'Alle fag',
|
|
276
278
|
title: 'Innhald',
|
|
279
|
+
modalLabel: 'Vel innhald',
|
|
277
280
|
subjectPage: 'Fagframside',
|
|
278
281
|
backToSubjectFrontpage: 'Tilbake til fagframsida',
|
|
279
282
|
openFilter: 'Filter',
|
|
@@ -393,6 +396,7 @@ const messages = {
|
|
|
393
396
|
competenceGoals: {
|
|
394
397
|
competenceGoal: 'kompetansemål',
|
|
395
398
|
title: 'Kompetansemål og læreplan',
|
|
399
|
+
modalText: 'Utforsk læreplankoplingar',
|
|
396
400
|
closeCompetenceGoals: 'Lukk kompetansemål',
|
|
397
401
|
showCompetenceGoals: 'Vis kompetansemål',
|
|
398
402
|
openCompentenceGoalsFilter: 'Filtrer kompetansemål',
|
|
@@ -961,6 +965,8 @@ const messages = {
|
|
|
961
965
|
collectedInfo: 'Vi har henta denne informasjonen om deg frå Feide:',
|
|
962
966
|
general: 'Ressursane som krev pålogging med Feide, vises med ikonet',
|
|
963
967
|
topic: ' Logg inn med Feide for å få tilgang til dette emnet.',
|
|
968
|
+
isAuth: 'Brukarinfo',
|
|
969
|
+
isNotAuth: 'Logg inn med Feide',
|
|
964
970
|
},
|
|
965
971
|
resource: {
|
|
966
972
|
accessDenied: 'Vi beklagar, men denne ressursen er berre for lærarar innlogga med Feide.',
|
|
@@ -995,7 +1001,10 @@ const messages = {
|
|
|
995
1001
|
delete: 'Slett',
|
|
996
1002
|
edit: 'Rediger',
|
|
997
1003
|
missingName: 'Mappenavn er påkrevd',
|
|
1004
|
+
folderDeleted: '"{{folderName}}" er sletta',
|
|
998
1005
|
},
|
|
1006
|
+
tags: '{{count}} tag',
|
|
1007
|
+
tags_plural: '{{count}} tags',
|
|
999
1008
|
confirmDeleteFolder: 'Er du sikker på at du vil slette mappa? Denne handlinga kan ikkje angres.',
|
|
1000
1009
|
confirmDeleteTag: 'Er du sikker på at du vil slette tag? Denne handlinga kan ikkje angres.',
|
|
1001
1010
|
myFolders: 'Mine mapper',
|
|
@@ -1006,6 +1015,7 @@ const messages = {
|
|
|
1006
1015
|
favourites: 'Favorittar',
|
|
1007
1016
|
addToFavourites: 'Legg til i mine favorittar',
|
|
1008
1017
|
alreadyFavourited: 'Allereie lagt til i mine favorittar',
|
|
1018
|
+
alreadyInFolder: 'Finnes allereie i mappa',
|
|
1009
1019
|
help: 'Hjelp',
|
|
1010
1020
|
more: 'Fleire val',
|
|
1011
1021
|
listView: 'Listevisning',
|
|
@@ -1015,6 +1025,9 @@ const messages = {
|
|
|
1015
1025
|
myPage: 'Min side',
|
|
1016
1026
|
deleteAccount: 'Slett Min NDLA',
|
|
1017
1027
|
logout: 'Logg ut av Min NDLA',
|
|
1028
|
+
loginTerms: 'Logg på med Feide for å få tilgang. Ved å logge på godkjennar du våre vilkår for bruk',
|
|
1029
|
+
loginResourcePitch: 'Ønsker du å favorittmerke denne sida?',
|
|
1030
|
+
loginWelcome: 'Velkommen til NDLA! Her kan du organisere fagstoffet på <i>din</i> måte!',
|
|
1018
1031
|
welcome:
|
|
1019
1032
|
'Velkommen til Min NDLA! Nå kan du lagre dine favorittressurser fra NDLA og organisere dem slik du ønsker i mapper og med tags.',
|
|
1020
1033
|
read: { our: 'Les våre', ours: 'Les vår' },
|
|
@@ -1045,9 +1058,17 @@ const messages = {
|
|
|
1045
1058
|
resource: {
|
|
1046
1059
|
add: 'Legg til mappe/tag',
|
|
1047
1060
|
remove: 'Fjern',
|
|
1061
|
+
removeTitle: 'Fjern ressurs',
|
|
1062
|
+
confirmRemove: 'Er du sikker på at du ønsker å fjerne ressursen frå denne mappen?',
|
|
1048
1063
|
copyLink: 'Kopier lenke til sida',
|
|
1064
|
+
linkCopied: 'Kopiert til utklippstavla',
|
|
1049
1065
|
addToMyNdla: 'Legg i Min NDLA',
|
|
1050
1066
|
addedToMyNdla: 'Lagt i Min NDLA',
|
|
1067
|
+
addedToFolder: 'Ressurs er lagt i "{{folderName}}"',
|
|
1068
|
+
removedFromFolder: 'Fjernet fra "{{folderName}}"',
|
|
1069
|
+
titleUpdated: 'Tittel oppdatert',
|
|
1070
|
+
tagsUpdated: 'Tags oppdatert',
|
|
1071
|
+
show: 'Vis',
|
|
1051
1072
|
},
|
|
1052
1073
|
},
|
|
1053
1074
|
snackbar: {
|
|
@@ -171,6 +171,7 @@ const messages = {
|
|
|
171
171
|
contextModal: {
|
|
172
172
|
button: '+ {{count}} flere steder',
|
|
173
173
|
heading: 'Ressursen er brukt flere steder',
|
|
174
|
+
ariaLabel: 'Se flere kontekster',
|
|
174
175
|
},
|
|
175
176
|
},
|
|
176
177
|
subjectPage: {
|
|
@@ -216,6 +217,7 @@ const messages = {
|
|
|
216
217
|
articleErrorDescription: 'Beklager, en feil oppstod under lasting av emnebeskrivelsen.',
|
|
217
218
|
topic: 'EMNE',
|
|
218
219
|
topics: 'Emner',
|
|
220
|
+
imageModal: 'Se bildet i full størrelse',
|
|
219
221
|
},
|
|
220
222
|
welcomePage: {
|
|
221
223
|
search: 'Søk',
|
|
@@ -274,6 +276,7 @@ const messages = {
|
|
|
274
276
|
toFrontpage: 'Til forsiden',
|
|
275
277
|
subjectOverview: 'Alle fag',
|
|
276
278
|
title: 'Innhold',
|
|
279
|
+
modalLabel: 'Velg innhold',
|
|
277
280
|
subjectPage: 'Fagforside',
|
|
278
281
|
backToSubjectFrontpage: 'Tilbake til fagforsiden',
|
|
279
282
|
openFilter: 'Filter',
|
|
@@ -392,6 +395,7 @@ const messages = {
|
|
|
392
395
|
competenceGoals: {
|
|
393
396
|
competenceGoal: 'kompetansemål',
|
|
394
397
|
title: 'Kompetansemål og læreplan',
|
|
398
|
+
modalText: 'Utforsk læreplankoblinger',
|
|
395
399
|
closeCompetenceGoals: 'Lukk kompetansemål',
|
|
396
400
|
showCompetenceGoals: 'Vis kompetansemål',
|
|
397
401
|
openCompentenceGoalsFilter: 'Filtrer kompetansemål',
|
|
@@ -960,6 +964,8 @@ const messages = {
|
|
|
960
964
|
collectedInfo: 'Vi har hentet følgende informasjon om deg fra Feide:',
|
|
961
965
|
general: 'Ressursene som krever pålogging med Feide, vises med ikonet',
|
|
962
966
|
topic: 'Logg inn med Feide for å få tilgang til dette emnet.',
|
|
967
|
+
isAuth: 'Brukerinfo',
|
|
968
|
+
isNotAuth: 'Logg inn med Feide',
|
|
963
969
|
},
|
|
964
970
|
resource: {
|
|
965
971
|
accessDenied: 'Vi beklager, men denne ressursen er bare for lærere innlogget med Feide.',
|
|
@@ -994,7 +1000,10 @@ const messages = {
|
|
|
994
1000
|
delete: 'Slett',
|
|
995
1001
|
edit: 'Rediger',
|
|
996
1002
|
missingName: 'Mappenavn er påkrevd',
|
|
1003
|
+
folderDeleted: '"{{folderName}}" er sletta',
|
|
997
1004
|
},
|
|
1005
|
+
tags: '{{count}} tag',
|
|
1006
|
+
tags_plural: '{{count}} tags',
|
|
998
1007
|
confirmDeleteFolder: 'Er du sikker på at du vil slette mappen? Denne handlingen kan ikke angres.',
|
|
999
1008
|
confirmDeleteTag: 'Er du sikker på at du vil slette tag? Denne handlingen kan ikke angres.',
|
|
1000
1009
|
myFolders: 'Mine mapper',
|
|
@@ -1005,6 +1014,7 @@ const messages = {
|
|
|
1005
1014
|
favourites: 'Favoritter',
|
|
1006
1015
|
addToFavourites: 'Legg til i mine favoritter',
|
|
1007
1016
|
alreadyFavourited: 'Allerede lagt til i mine favoritter',
|
|
1017
|
+
alreadyInFolder: 'Finnes allerede i mappen',
|
|
1008
1018
|
help: 'Hjelp',
|
|
1009
1019
|
more: 'Flere valg',
|
|
1010
1020
|
listView: 'Listevisning',
|
|
@@ -1014,6 +1024,9 @@ const messages = {
|
|
|
1014
1024
|
myPage: 'Min side',
|
|
1015
1025
|
deleteAccount: 'Slett Min NDLA',
|
|
1016
1026
|
logout: 'Logg ut av Min NDLA',
|
|
1027
|
+
loginTerms: 'Logg på med Feide for å få tilgang. Ved å logge på godkjennar du våre vilkår for bruk',
|
|
1028
|
+
loginResourcePitch: 'Ønsker du å favorittmerke denne sida?',
|
|
1029
|
+
loginWelcome: 'Velkommen til NDLA! Her kan du organisere fagstoffet på <i>din</i> måte!',
|
|
1017
1030
|
welcome:
|
|
1018
1031
|
'Velkommen til Min NDLA! Nå kan du lagre dine favorittressurser fra NDLA og organisere dem slik du ønsker i mapper og med tags.',
|
|
1019
1032
|
read: { our: 'Les våre', ours: 'Les vår' },
|
|
@@ -1045,9 +1058,17 @@ const messages = {
|
|
|
1045
1058
|
resource: {
|
|
1046
1059
|
add: 'Legg til mappe/tag',
|
|
1047
1060
|
remove: 'Fjern',
|
|
1061
|
+
removeTitle: 'Fjern ressurs',
|
|
1062
|
+
confirmRemove: 'Er du sikker på at du ønsker å fjerne ressursen frå denne mappen?',
|
|
1048
1063
|
copyLink: 'Kopier lenke til siden',
|
|
1064
|
+
linkCopied: 'Kopiert til utklippstavla',
|
|
1049
1065
|
addToMyNdla: 'Legg i Min NDLA',
|
|
1050
1066
|
addedToMyNdla: 'Lagt i Min NDLA',
|
|
1067
|
+
addedToFolder: 'Ressurs er lagt i "{{folderName}}"',
|
|
1068
|
+
removedFromFolder: 'Fjernet fra "{{folderName}}"',
|
|
1069
|
+
titleUpdated: 'Tittel oppdatert',
|
|
1070
|
+
tagsUpdated: 'Tags oppdatert',
|
|
1071
|
+
show: 'Vis',
|
|
1051
1072
|
},
|
|
1052
1073
|
},
|
|
1053
1074
|
snackbar: {
|