@ndla/ui 21.0.0 → 22.0.2
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/Breadcrumb/ActionBreadcrumb.js +4 -4
- package/es/ContentLoader/index.js +8 -3
- package/es/MyNdla/Resource/Folder.js +7 -6
- package/es/Resource/BlockResource.js +106 -18
- package/es/Resource/ListResource.js +125 -26
- package/es/ResourceGroup/ResourceGroup.js +3 -3
- package/es/ResourceGroup/ResourceItem.js +12 -12
- package/es/ResourceGroup/ResourceList.js +2 -2
- package/es/Search/ContentTypeResult.js +1 -2
- package/es/SearchTypeResult/SearchItem.js +8 -8
- package/es/SnackBar/DefaultSnackbar.js +56 -0
- package/es/SnackBar/SnackbarProvider.js +179 -0
- package/es/SnackBar/index.js +2 -2
- package/es/TopicMenu/TopicMenuButton.js +4 -2
- package/es/TreeStructure/FolderItem.js +64 -44
- package/es/TreeStructure/FolderItems.js +4 -4
- package/es/TreeStructure/TreeStructure.js +16 -9
- package/es/index.js +1 -1
- package/es/locale/messages-en.js +17 -2
- package/es/locale/messages-nb.js +17 -2
- package/es/locale/messages-nn.js +17 -2
- package/es/locale/messages-se.js +17 -2
- package/es/locale/messages-sma.js +17 -2
- package/lib/Breadcrumb/ActionBreadcrumb.js +4 -4
- package/lib/ContentLoader/index.d.ts +4 -8
- package/lib/ContentLoader/index.js +8 -3
- package/lib/MyNdla/Resource/Folder.js +7 -6
- package/lib/Resource/BlockResource.d.ts +2 -1
- package/lib/Resource/BlockResource.js +107 -18
- package/lib/Resource/ListResource.d.ts +2 -1
- package/lib/Resource/ListResource.js +126 -26
- package/lib/ResourceGroup/ResourceGroup.d.ts +1 -1
- package/lib/ResourceGroup/ResourceGroup.js +3 -3
- package/lib/ResourceGroup/ResourceItem.d.ts +1 -1
- package/lib/ResourceGroup/ResourceItem.js +12 -12
- package/lib/ResourceGroup/ResourceList.d.ts +1 -1
- package/lib/ResourceGroup/ResourceList.js +2 -2
- package/lib/Search/ContentTypeResult.js +1 -2
- package/lib/SearchTypeResult/SearchItem.js +8 -8
- 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/TopicMenu/TopicMenuButton.js +3 -1
- 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 +2 -2
- package/lib/TreeStructure/TreeStructure.js +16 -9
- package/lib/TreeStructure/types.d.ts +2 -1
- package/lib/index.d.ts +2 -2
- package/lib/index.js +24 -3
- package/lib/locale/messages-en.d.ts +15 -0
- package/lib/locale/messages-en.js +17 -2
- package/lib/locale/messages-nb.d.ts +15 -0
- package/lib/locale/messages-nb.js +17 -2
- package/lib/locale/messages-nn.d.ts +15 -0
- package/lib/locale/messages-nn.js +17 -2
- package/lib/locale/messages-se.d.ts +15 -0
- package/lib/locale/messages-se.js +17 -2
- package/lib/locale/messages-sma.d.ts +15 -0
- package/lib/locale/messages-sma.js +17 -2
- package/package.json +14 -14
- package/src/.DS_Store +0 -0
- package/src/Breadcrumb/ActionBreadcrumb.tsx +1 -1
- package/src/ContentLoader/index.tsx +9 -9
- package/src/MyNdla/Resource/Folder.tsx +1 -1
- package/src/Resource/BlockResource.tsx +66 -5
- package/src/Resource/ListResource.tsx +86 -11
- package/src/ResourceGroup/ResourceGroup.tsx +1 -1
- package/src/ResourceGroup/ResourceItem.tsx +2 -2
- package/src/ResourceGroup/ResourceList.tsx +1 -1
- package/src/Search/ContentTypeResult.tsx +0 -1
- package/src/SearchTypeResult/SearchItem.tsx +0 -1
- package/src/SnackBar/DefaultSnackbar.tsx +70 -0
- package/src/SnackBar/SnackbarProvider.tsx +147 -0
- package/src/SnackBar/index.ts +3 -5
- package/src/TopicMenu/TopicMenuButton.jsx +5 -1
- package/src/TreeStructure/FolderItem.tsx +56 -37
- package/src/TreeStructure/FolderItems.tsx +3 -2
- package/src/TreeStructure/TreeStructure.tsx +11 -6
- package/src/TreeStructure/types.ts +2 -1
- package/src/index.ts +2 -2
- package/src/locale/messages-en.ts +15 -0
- package/src/locale/messages-nb.ts +15 -0
- package/src/locale/messages-nn.ts +15 -0
- package/src/locale/messages-se.ts +15 -0
- package/src/locale/messages-sma.ts +15 -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>
|
|
@@ -37,7 +37,7 @@ export interface TreeStructureProps extends CommonTreeStructureProps {
|
|
|
37
37
|
framed?: boolean;
|
|
38
38
|
label?: string;
|
|
39
39
|
maximumLevelsOfFoldersAllowed?: number;
|
|
40
|
-
onNewFolder
|
|
40
|
+
onNewFolder?: (name: string, parentId: string) => Promise<IFolder>;
|
|
41
41
|
}
|
|
42
42
|
|
|
43
43
|
const TreeStructure = ({
|
|
@@ -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(() => {
|
|
@@ -111,7 +115,7 @@ const TreeStructure = ({
|
|
|
111
115
|
};
|
|
112
116
|
|
|
113
117
|
const onSaveNewFolder = (name: string, parentId: string) => {
|
|
114
|
-
onNewFolder(name, parentId).then((newFolder) => {
|
|
118
|
+
onNewFolder?.(name, parentId).then((newFolder) => {
|
|
115
119
|
if (newFolder) {
|
|
116
120
|
setSelectedFolder(newFolder);
|
|
117
121
|
setFocusedId(newFolder.id);
|
|
@@ -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/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';
|
|
@@ -996,7 +996,10 @@ const messages = {
|
|
|
996
996
|
delete: 'Delete',
|
|
997
997
|
edit: 'Edit',
|
|
998
998
|
missingName: 'Folder name required',
|
|
999
|
+
folderDeleted: '"{{folderName}}" deleted',
|
|
999
1000
|
},
|
|
1001
|
+
tags: '{{count}} tag',
|
|
1002
|
+
tags_plural: '{{count}} tags',
|
|
1000
1003
|
confirmDeleteFolder: 'Are you sure you want to delete this folder? This process cannot be undone.',
|
|
1001
1004
|
confirmDeleteTag: 'Are you sure you want to delete this tag? This process cannot be undone.',
|
|
1002
1005
|
myFolders: 'My folders',
|
|
@@ -1007,6 +1010,7 @@ const messages = {
|
|
|
1007
1010
|
favourites: 'Favourites',
|
|
1008
1011
|
addToFavourites: 'Add to my favourites',
|
|
1009
1012
|
alreadyFavourited: 'Already in my favourites',
|
|
1013
|
+
alreadyInFolder: 'Already in folder',
|
|
1010
1014
|
help: 'Help',
|
|
1011
1015
|
more: 'More options',
|
|
1012
1016
|
listView: 'List view',
|
|
@@ -1015,6 +1019,9 @@ const messages = {
|
|
|
1015
1019
|
myPage: {
|
|
1016
1020
|
myPage: 'My page',
|
|
1017
1021
|
logout: 'Log out of My NDLA',
|
|
1022
|
+
loginTerms: 'Log in with Feide to receive access. By logging on your accept your terms of service',
|
|
1023
|
+
loginResourcePitch: 'Do you want to favorite this page?',
|
|
1024
|
+
loginWelcome: 'Welcome to My NDLA! This page allows you to organize your articles in your <i>own</i> way!',
|
|
1018
1025
|
deleteAccount: 'Delete My NDLA',
|
|
1019
1026
|
welcome:
|
|
1020
1027
|
'Welcome to my NDLA! You can now save your favourite resources from NDLA and organise them in folders with tags',
|
|
@@ -1047,9 +1054,17 @@ const messages = {
|
|
|
1047
1054
|
resource: {
|
|
1048
1055
|
add: 'Add folder/tag',
|
|
1049
1056
|
remove: 'Remove',
|
|
1057
|
+
removeTitle: 'Remove resource',
|
|
1058
|
+
confirmRemove: 'Are you sure you want to remove the resource from this folder?',
|
|
1050
1059
|
copyLink: 'Copy link to this page',
|
|
1060
|
+
linkCopied: 'Copied to clipboard',
|
|
1051
1061
|
addToMyNdla: 'Add to My NDLA',
|
|
1052
1062
|
addedToMyNdla: 'Added to My NDLA',
|
|
1063
|
+
addedToFolder: 'Resource added to "{{folderName}}"',
|
|
1064
|
+
removedFromFolder: 'Removed from "{{folderName}}"',
|
|
1065
|
+
titleUpdated: 'Title updated',
|
|
1066
|
+
tagsUpdated: 'Tags updated',
|
|
1067
|
+
show: 'Show',
|
|
1053
1068
|
},
|
|
1054
1069
|
},
|
|
1055
1070
|
snackbar: {
|
|
@@ -994,7 +994,10 @@ const messages = {
|
|
|
994
994
|
delete: 'Slett',
|
|
995
995
|
edit: 'Rediger',
|
|
996
996
|
missingName: 'Mappenavn er påkrevd',
|
|
997
|
+
folderDeleted: '"{{folderName}}" er slettet',
|
|
997
998
|
},
|
|
999
|
+
tags: '{{count}} tag',
|
|
1000
|
+
tags_plural: '{{count}} tags',
|
|
998
1001
|
confirmDeleteFolder: 'Er du sikker på at du vil slette mappen? Denne handlingen kan ikke angres.',
|
|
999
1002
|
confirmDeleteTag: 'Er du sikker på at du vil slette tag? Denne handlingen kan ikke angres.',
|
|
1000
1003
|
myFolders: 'Mine mapper',
|
|
@@ -1005,6 +1008,7 @@ const messages = {
|
|
|
1005
1008
|
favourites: 'Favoritter',
|
|
1006
1009
|
addToFavourites: 'Legg til i mine favoritter',
|
|
1007
1010
|
alreadyFavourited: 'Allerede lagt til i mine favoritter',
|
|
1011
|
+
alreadyInFolder: 'Finnes allerede i mappen',
|
|
1008
1012
|
help: 'Hjelp',
|
|
1009
1013
|
more: 'Flere valg',
|
|
1010
1014
|
listView: 'Listevisning',
|
|
@@ -1014,6 +1018,9 @@ const messages = {
|
|
|
1014
1018
|
myPage: 'Min side',
|
|
1015
1019
|
deleteAccount: 'Slett Min NDLA',
|
|
1016
1020
|
logout: 'Logg ut av Min NDLA',
|
|
1021
|
+
loginTerms: 'Logg på med Feide for å få tilgang. Ved å logge på godkjenner du våre vilkår for bruk',
|
|
1022
|
+
loginResourcePitch: 'Ønsker du å favorittmerke denne siden?',
|
|
1023
|
+
loginWelcome: 'Velkommen til NDLA! Her kan du organisere fagstoffet på <i>din</i> måte!',
|
|
1017
1024
|
welcome:
|
|
1018
1025
|
'Velkommen til Min NDLA! Nå kan du lagre dine favorittressurser fra NDLA og organisere dem slik du ønsker i mapper og med tags.',
|
|
1019
1026
|
read: { our: 'Les våre', ours: 'Les vår' },
|
|
@@ -1045,9 +1052,17 @@ const messages = {
|
|
|
1045
1052
|
resource: {
|
|
1046
1053
|
add: 'Legg til mappe/tag',
|
|
1047
1054
|
remove: 'Fjern',
|
|
1055
|
+
removeTitle: 'Fjern ressurs',
|
|
1056
|
+
confirmRemove: 'Er du sikker på at du ønsker å fjerne ressursen fra denne mappen?',
|
|
1048
1057
|
copyLink: 'Kopier lenke til siden',
|
|
1058
|
+
linkCopied: 'Kopiert til utklippstavle',
|
|
1049
1059
|
addToMyNdla: 'Legg i Min NDLA',
|
|
1050
1060
|
addedToMyNdla: 'Lagt i Min NDLA',
|
|
1061
|
+
addedToFolder: 'Ressurs er lagt i "{{folderName}}"',
|
|
1062
|
+
removedFromFolder: 'Fjernet fra "{{folderName}}"',
|
|
1063
|
+
titleUpdated: 'Tittel oppdatert',
|
|
1064
|
+
tagsUpdated: 'Tags oppdatert',
|
|
1065
|
+
show: 'Vis',
|
|
1051
1066
|
},
|
|
1052
1067
|
},
|
|
1053
1068
|
snackbar: {
|
|
@@ -995,7 +995,10 @@ const messages = {
|
|
|
995
995
|
delete: 'Slett',
|
|
996
996
|
edit: 'Rediger',
|
|
997
997
|
missingName: 'Mappenavn er påkrevd',
|
|
998
|
+
folderDeleted: '"{{folderName}}" er sletta',
|
|
998
999
|
},
|
|
1000
|
+
tags: '{{count}} tag',
|
|
1001
|
+
tags_plural: '{{count}} tags',
|
|
999
1002
|
confirmDeleteFolder: 'Er du sikker på at du vil slette mappa? Denne handlinga kan ikkje angres.',
|
|
1000
1003
|
confirmDeleteTag: 'Er du sikker på at du vil slette tag? Denne handlinga kan ikkje angres.',
|
|
1001
1004
|
myFolders: 'Mine mapper',
|
|
@@ -1006,6 +1009,7 @@ const messages = {
|
|
|
1006
1009
|
favourites: 'Favorittar',
|
|
1007
1010
|
addToFavourites: 'Legg til i mine favorittar',
|
|
1008
1011
|
alreadyFavourited: 'Allereie lagt til i mine favorittar',
|
|
1012
|
+
alreadyInFolder: 'Finnes allereie i mappa',
|
|
1009
1013
|
help: 'Hjelp',
|
|
1010
1014
|
more: 'Fleire val',
|
|
1011
1015
|
listView: 'Listevisning',
|
|
@@ -1015,6 +1019,9 @@ const messages = {
|
|
|
1015
1019
|
myPage: 'Min side',
|
|
1016
1020
|
deleteAccount: 'Slett Min NDLA',
|
|
1017
1021
|
logout: 'Logg ut av Min NDLA',
|
|
1022
|
+
loginTerms: 'Logg på med Feide for å få tilgang. Ved å logge på godkjennar du våre vilkår for bruk',
|
|
1023
|
+
loginResourcePitch: 'Ønsker du å favorittmerke denne sida?',
|
|
1024
|
+
loginWelcome: 'Velkommen til NDLA! Her kan du organisere fagstoffet på <i>din</i> måte!',
|
|
1018
1025
|
welcome:
|
|
1019
1026
|
'Velkommen til Min NDLA! Nå kan du lagre dine favorittressurser fra NDLA og organisere dem slik du ønsker i mapper og med tags.',
|
|
1020
1027
|
read: { our: 'Les våre', ours: 'Les vår' },
|
|
@@ -1045,9 +1052,17 @@ const messages = {
|
|
|
1045
1052
|
resource: {
|
|
1046
1053
|
add: 'Legg til mappe/tag',
|
|
1047
1054
|
remove: 'Fjern',
|
|
1055
|
+
removeTitle: 'Fjern ressurs',
|
|
1056
|
+
confirmRemove: 'Er du sikker på at du ønsker å fjerne ressursen frå denne mappen?',
|
|
1048
1057
|
copyLink: 'Kopier lenke til sida',
|
|
1058
|
+
linkCopied: 'Kopiert til utklippstavla',
|
|
1049
1059
|
addToMyNdla: 'Legg i Min NDLA',
|
|
1050
1060
|
addedToMyNdla: 'Lagt i Min NDLA',
|
|
1061
|
+
addedToFolder: 'Ressurs er lagt i "{{folderName}}"',
|
|
1062
|
+
removedFromFolder: 'Fjernet fra "{{folderName}}"',
|
|
1063
|
+
titleUpdated: 'Tittel oppdatert',
|
|
1064
|
+
tagsUpdated: 'Tags oppdatert',
|
|
1065
|
+
show: 'Vis',
|
|
1051
1066
|
},
|
|
1052
1067
|
},
|
|
1053
1068
|
snackbar: {
|
|
@@ -994,7 +994,10 @@ const messages = {
|
|
|
994
994
|
delete: 'Slett',
|
|
995
995
|
edit: 'Rediger',
|
|
996
996
|
missingName: 'Mappenavn er påkrevd',
|
|
997
|
+
folderDeleted: '"{{folderName}}" er sletta',
|
|
997
998
|
},
|
|
999
|
+
tags: '{{count}} tag',
|
|
1000
|
+
tags_plural: '{{count}} tags',
|
|
998
1001
|
confirmDeleteFolder: 'Er du sikker på at du vil slette mappen? Denne handlingen kan ikke angres.',
|
|
999
1002
|
confirmDeleteTag: 'Er du sikker på at du vil slette tag? Denne handlingen kan ikke angres.',
|
|
1000
1003
|
myFolders: 'Mine mapper',
|
|
@@ -1005,6 +1008,7 @@ const messages = {
|
|
|
1005
1008
|
favourites: 'Favoritter',
|
|
1006
1009
|
addToFavourites: 'Legg til i mine favoritter',
|
|
1007
1010
|
alreadyFavourited: 'Allerede lagt til i mine favoritter',
|
|
1011
|
+
alreadyInFolder: 'Finnes allerede i mappen',
|
|
1008
1012
|
help: 'Hjelp',
|
|
1009
1013
|
more: 'Flere valg',
|
|
1010
1014
|
listView: 'Listevisning',
|
|
@@ -1014,6 +1018,9 @@ const messages = {
|
|
|
1014
1018
|
myPage: 'Min side',
|
|
1015
1019
|
deleteAccount: 'Slett Min NDLA',
|
|
1016
1020
|
logout: 'Logg ut av Min NDLA',
|
|
1021
|
+
loginTerms: 'Logg på med Feide for å få tilgang. Ved å logge på godkjennar du våre vilkår for bruk',
|
|
1022
|
+
loginResourcePitch: 'Ønsker du å favorittmerke denne sida?',
|
|
1023
|
+
loginWelcome: 'Velkommen til NDLA! Her kan du organisere fagstoffet på <i>din</i> måte!',
|
|
1017
1024
|
welcome:
|
|
1018
1025
|
'Velkommen til Min NDLA! Nå kan du lagre dine favorittressurser fra NDLA og organisere dem slik du ønsker i mapper og med tags.',
|
|
1019
1026
|
read: { our: 'Les våre', ours: 'Les vår' },
|
|
@@ -1045,9 +1052,17 @@ const messages = {
|
|
|
1045
1052
|
resource: {
|
|
1046
1053
|
add: 'Legg til mappe/tag',
|
|
1047
1054
|
remove: 'Fjern',
|
|
1055
|
+
removeTitle: 'Fjern ressurs',
|
|
1056
|
+
confirmRemove: 'Er du sikker på at du ønsker å fjerne ressursen frå denne mappen?',
|
|
1048
1057
|
copyLink: 'Kopier lenke til siden',
|
|
1058
|
+
linkCopied: 'Kopiert til utklippstavla',
|
|
1049
1059
|
addToMyNdla: 'Legg i Min NDLA',
|
|
1050
1060
|
addedToMyNdla: 'Lagt i Min NDLA',
|
|
1061
|
+
addedToFolder: 'Ressurs er lagt i "{{folderName}}"',
|
|
1062
|
+
removedFromFolder: 'Fjernet fra "{{folderName}}"',
|
|
1063
|
+
titleUpdated: 'Tittel oppdatert',
|
|
1064
|
+
tagsUpdated: 'Tags oppdatert',
|
|
1065
|
+
show: 'Vis',
|
|
1051
1066
|
},
|
|
1052
1067
|
},
|
|
1053
1068
|
snackbar: {
|
|
@@ -994,7 +994,10 @@ const messages = {
|
|
|
994
994
|
delete: 'Slett',
|
|
995
995
|
edit: 'Rediger',
|
|
996
996
|
missingName: 'Mappenavn er påkrevd',
|
|
997
|
+
folderDeleted: '"{{folderName}}" er sletta',
|
|
997
998
|
},
|
|
999
|
+
tags: '{{count}} tag',
|
|
1000
|
+
tags_plural: '{{count}} tags',
|
|
998
1001
|
confirmDeleteFolder: 'Er du sikker på at du vil slette mappen? Denne handlingen kan ikke angres.',
|
|
999
1002
|
confirmDeleteTag: 'Er du sikker på at du vil slette tag? Denne handlingen kan ikke angres.',
|
|
1000
1003
|
myFolders: 'Mine mapper',
|
|
@@ -1005,6 +1008,7 @@ const messages = {
|
|
|
1005
1008
|
favourites: 'Favoritter',
|
|
1006
1009
|
addToFavourites: 'Legg til i mine favoritter',
|
|
1007
1010
|
alreadyFavourited: 'Allerede lagt til i mine favoritter',
|
|
1011
|
+
alreadyInFolder: 'Finnes allerede i mappen',
|
|
1008
1012
|
help: 'Hjelp',
|
|
1009
1013
|
more: 'Flere valg',
|
|
1010
1014
|
listView: 'Listevisning',
|
|
@@ -1014,6 +1018,9 @@ const messages = {
|
|
|
1014
1018
|
myPage: 'Min side',
|
|
1015
1019
|
deleteAccount: 'Slett Min NDLA',
|
|
1016
1020
|
logout: 'Logg ut av Min NDLA',
|
|
1021
|
+
loginTerms: 'Logg på med Feide for å få tilgang. Ved å logge på godkjennar du våre vilkår for bruk',
|
|
1022
|
+
loginResourcePitch: 'Ønsker du å favorittmerke denne sida?',
|
|
1023
|
+
loginWelcome: 'Velkommen til NDLA! Her kan du organisere fagstoffet på <i>din</i> måte!',
|
|
1017
1024
|
welcome:
|
|
1018
1025
|
'Velkommen til Min NDLA! Nå kan du lagre dine favorittressurser fra NDLA og organisere dem slik du ønsker i mapper og med tags.',
|
|
1019
1026
|
read: { our: 'Les våre', ours: 'Les vår' },
|
|
@@ -1045,9 +1052,17 @@ const messages = {
|
|
|
1045
1052
|
resource: {
|
|
1046
1053
|
add: 'Legg til mappe/tag',
|
|
1047
1054
|
remove: 'Fjern',
|
|
1055
|
+
removeTitle: 'Fjern ressurs',
|
|
1056
|
+
confirmRemove: 'Er du sikker på at du ønsker å fjerne ressursen frå denne mappen?',
|
|
1048
1057
|
copyLink: 'Kopier lenke til siden',
|
|
1058
|
+
linkCopied: 'Kopiert til utklippstavla',
|
|
1049
1059
|
addToMyNdla: 'Legg i Min NDLA',
|
|
1050
1060
|
addedToMyNdla: 'Lagt i Min NDLA',
|
|
1061
|
+
addedToFolder: 'Ressurs er lagt i "{{folderName}}"',
|
|
1062
|
+
removedFromFolder: 'Fjernet fra "{{folderName}}"',
|
|
1063
|
+
titleUpdated: 'Tittel oppdatert',
|
|
1064
|
+
tagsUpdated: 'Tags oppdatert',
|
|
1065
|
+
show: 'Vis',
|
|
1051
1066
|
},
|
|
1052
1067
|
},
|
|
1053
1068
|
snackbar: {
|