@ndla/ui 16.1.0 → 17.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/Article/Article.js +3 -3
- package/es/Breadcrumblist/Breadcrumblist.js +7 -7
- package/es/Frontpage/FrontpageAllSubjects.js +8 -8
- package/es/Masthead/Masthead.js +2 -3
- package/es/Messages/MessageBanner.js +75 -0
- package/es/Messages/MessageBox.js +123 -0
- package/es/{MessageBox → Messages}/MessageBoxTag.js +1 -1
- package/es/{MessageBox → Messages}/index.js +3 -3
- package/es/NDLAFilm/MovieGrid.js +3 -3
- package/es/Notion/ConceptNotion.js +1 -1
- package/es/Notion/index.js +2 -1
- package/es/Programme/Programme.js +6 -6
- package/es/Programme/ProgrammeSubjects.js +2 -2
- package/es/Resource/resourceComponents.js +17 -9
- package/es/Topic/Topic.js +22 -24
- package/es/TopicMenu/TopicMenu.js +2 -4
- package/es/TreeStructure/FolderItem.js +39 -28
- package/es/TreeStructure/FolderItems.js +8 -5
- package/es/TreeStructure/TreeStructure.js +10 -11
- package/es/TreeStructure/TreeStructureWrapper.js +2 -2
- package/es/index.js +2 -2
- package/es/locale/messages-en.js +1 -1
- package/es/locale/messages-nb.js +1 -1
- package/es/locale/messages-nn.js +1 -1
- package/es/locale/messages-se.js +1 -1
- package/es/locale/messages-sma.js +1 -1
- package/lib/Article/Article.js +3 -3
- package/lib/Breadcrumblist/Breadcrumblist.js +7 -7
- package/lib/Breadcrumblist/index.d.ts +1 -0
- package/lib/Frontpage/FrontpageAllSubjects.js +9 -9
- package/lib/Masthead/Masthead.js +2 -3
- package/lib/Messages/MessageBanner.d.ts +16 -0
- package/lib/Messages/MessageBanner.js +78 -0
- package/lib/{MessageBox → Messages}/MessageBox.d.ts +6 -14
- package/lib/Messages/MessageBox.js +128 -0
- package/lib/{MessageBox → Messages}/MessageBoxTag.d.ts +0 -0
- package/lib/{MessageBox → Messages}/MessageBoxTag.js +1 -1
- package/lib/{MessageBox → Messages}/index.d.ts +3 -3
- package/lib/Messages/index.js +31 -0
- package/lib/NDLAFilm/MovieGrid.js +9 -9
- package/lib/Notion/ConceptNotion.d.ts +1 -1
- package/lib/Notion/ConceptNotion.js +1 -1
- package/lib/Notion/index.d.ts +4 -1
- package/lib/Notion/index.js +11 -3
- package/lib/Programme/Programme.js +6 -6
- package/lib/Programme/ProgrammeSubjects.js +3 -3
- package/lib/Resource/resourceComponents.js +17 -9
- package/lib/Topic/Topic.js +22 -24
- package/lib/TopicMenu/TopicMenu.js +2 -4
- package/lib/TreeStructure/FolderItem.d.ts +3 -2
- package/lib/TreeStructure/FolderItem.js +38 -28
- package/lib/TreeStructure/FolderItems.d.ts +1 -1
- package/lib/TreeStructure/FolderItems.js +8 -5
- package/lib/TreeStructure/TreeStructure.d.ts +1 -1
- package/lib/TreeStructure/TreeStructure.js +10 -11
- package/lib/TreeStructure/TreeStructure.types.d.ts +6 -3
- package/lib/TreeStructure/TreeStructureWrapper.js +2 -2
- package/lib/index.d.ts +7 -3
- package/lib/index.js +13 -6
- package/lib/locale/messages-en.js +1 -1
- package/lib/locale/messages-nb.js +1 -1
- package/lib/locale/messages-nn.js +1 -1
- package/lib/locale/messages-se.js +1 -1
- package/lib/locale/messages-sma.js +1 -1
- package/package.json +13 -13
- package/src/Article/Article.tsx +1 -1
- package/src/Breadcrumblist/Breadcrumblist.tsx +1 -1
- package/src/Breadcrumblist/{index.tsx → index.ts} +1 -0
- package/src/Frontpage/FrontpageAllSubjects.tsx +1 -1
- package/src/Masthead/Masthead.tsx +3 -6
- package/src/Messages/MessageBanner.tsx +66 -0
- package/src/Messages/MessageBox.tsx +156 -0
- package/src/{MessageBox → Messages}/MessageBoxTag.tsx +0 -0
- package/src/{MessageBox → Messages}/index.ts +3 -3
- package/src/NDLAFilm/MovieGrid.tsx +1 -1
- package/src/Notion/ConceptNotion.tsx +2 -1
- package/src/Notion/index.ts +4 -1
- package/src/Programme/Programme.tsx +1 -1
- package/src/Programme/ProgrammeSubjects.tsx +1 -1
- package/src/Resource/resourceComponents.tsx +1 -3
- package/src/Topic/Topic.tsx +2 -2
- package/src/TopicMenu/TopicMenu.jsx +2 -2
- package/src/TreeStructure/FolderItem.tsx +40 -19
- package/src/TreeStructure/FolderItems.tsx +3 -0
- package/src/TreeStructure/TreeStructure.tsx +7 -11
- package/src/TreeStructure/TreeStructure.types.ts +7 -3
- package/src/TreeStructure/TreeStructureWrapper.tsx +1 -1
- package/src/index.ts +16 -3
- package/src/locale/messages-en.ts +1 -1
- package/src/locale/messages-nb.ts +1 -1
- package/src/locale/messages-nn.ts +1 -1
- package/src/locale/messages-se.ts +1 -1
- package/src/locale/messages-sma.ts +1 -1
- package/es/MessageBox/MessageBox.js +0 -220
- package/lib/MessageBox/MessageBox.js +0 -234
- package/lib/MessageBox/index.js +0 -35
- package/src/MessageBox/MessageBox.tsx +0 -201
|
@@ -11,7 +11,7 @@ import styled from '@emotion/styled';
|
|
|
11
11
|
import { ArrowDropDown } from '@ndla/icons/common';
|
|
12
12
|
import { FolderOutlined } from '@ndla/icons/contentType';
|
|
13
13
|
import { colors, spacing, misc, animations } from '@ndla/core';
|
|
14
|
-
import { SetFocusedFolderId } from './TreeStructure.types';
|
|
14
|
+
import { SetFocusedFolderId, FolderChildFuncType } from './TreeStructure.types';
|
|
15
15
|
|
|
16
16
|
const OpenButton = styled.button<{ isOpen: boolean }>`
|
|
17
17
|
background: transparent;
|
|
@@ -37,6 +37,16 @@ const FolderItemWrapper = styled.div`
|
|
|
37
37
|
align-items: center;
|
|
38
38
|
`;
|
|
39
39
|
|
|
40
|
+
const WrapperForFolderChild = styled.div<{ marked: boolean }>`
|
|
41
|
+
position: absolute;
|
|
42
|
+
right: ${spacing.xsmall};
|
|
43
|
+
opacity: ${({ marked }) => (marked ? 1 : 0.25)};
|
|
44
|
+
&:hover,
|
|
45
|
+
&:focus {
|
|
46
|
+
opacity: 1;
|
|
47
|
+
}
|
|
48
|
+
`;
|
|
49
|
+
|
|
40
50
|
const FolderName = styled.button<{ marked: boolean; noArrow?: boolean }>`
|
|
41
51
|
line-height: 1;
|
|
42
52
|
background: ${({ marked }) => (marked ? colors.brand.lighter : 'transparent')};
|
|
@@ -45,6 +55,9 @@ const FolderName = styled.button<{ marked: boolean; noArrow?: boolean }>`
|
|
|
45
55
|
&:focus {
|
|
46
56
|
background: ${({ marked }) => (marked ? colors.brand.light : colors.brand.lightest)};
|
|
47
57
|
color: ${colors.brand.primary};
|
|
58
|
+
+ ${WrapperForFolderChild} {
|
|
59
|
+
opacity: 1;
|
|
60
|
+
}
|
|
48
61
|
}
|
|
49
62
|
transition: ${animations.durations.superFast};
|
|
50
63
|
border: 0;
|
|
@@ -58,6 +71,7 @@ const FolderName = styled.button<{ marked: boolean; noArrow?: boolean }>`
|
|
|
58
71
|
margin-left: ${({ noArrow }) => (noArrow ? `29px` : `0px`)};
|
|
59
72
|
flex-grow: 1;
|
|
60
73
|
box-shadow: none;
|
|
74
|
+
text-align: left;
|
|
61
75
|
`;
|
|
62
76
|
|
|
63
77
|
const FolderNameLink = FolderName.withComponent('a');
|
|
@@ -77,6 +91,7 @@ interface Props {
|
|
|
77
91
|
url?: string;
|
|
78
92
|
icon?: React.ReactNode;
|
|
79
93
|
noPaddingWhenArrowIsHidden?: boolean;
|
|
94
|
+
folderChild?: FolderChildFuncType;
|
|
80
95
|
}
|
|
81
96
|
|
|
82
97
|
const FolderItem = ({
|
|
@@ -94,6 +109,7 @@ const FolderItem = ({
|
|
|
94
109
|
icon,
|
|
95
110
|
url,
|
|
96
111
|
noPaddingWhenArrowIsHidden,
|
|
112
|
+
folderChild,
|
|
97
113
|
}: Props) => {
|
|
98
114
|
const folderNameLinkRef = useRef<HTMLAnchorElement | null>(null);
|
|
99
115
|
const folderNameButtonRef = useRef<HTMLButtonElement | null>(null);
|
|
@@ -134,24 +150,29 @@ const FolderItem = ({
|
|
|
134
150
|
{name}
|
|
135
151
|
</FolderNameLink>
|
|
136
152
|
) : (
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
153
|
+
<>
|
|
154
|
+
<FolderName
|
|
155
|
+
ref={folderNameButtonRef}
|
|
156
|
+
noArrow={hideArrow && !noPaddingWhenArrowIsHidden}
|
|
157
|
+
tabIndex={marked ? 0 : -1}
|
|
158
|
+
marked={marked}
|
|
159
|
+
disabled={loading}
|
|
160
|
+
onFocus={() => {
|
|
161
|
+
setFocusedFolderId(id);
|
|
162
|
+
}}
|
|
163
|
+
onClick={() => {
|
|
164
|
+
onMarkFolder(id);
|
|
165
|
+
if (openOnFolderClick) {
|
|
166
|
+
onToggleOpen(id);
|
|
167
|
+
}
|
|
168
|
+
}}>
|
|
169
|
+
{icon || <FolderOutlined />}
|
|
170
|
+
{name}
|
|
171
|
+
</FolderName>
|
|
172
|
+
{folderChild && (
|
|
173
|
+
<WrapperForFolderChild marked={marked}>{folderChild(id, marked ? 0 : -1)}</WrapperForFolderChild>
|
|
174
|
+
)}
|
|
175
|
+
</>
|
|
155
176
|
)}
|
|
156
177
|
</FolderItemWrapper>
|
|
157
178
|
);
|
|
@@ -48,6 +48,7 @@ const FolderItems = ({
|
|
|
48
48
|
focusedFolderId,
|
|
49
49
|
setFocusedFolderId,
|
|
50
50
|
firstLevel,
|
|
51
|
+
folderChild,
|
|
51
52
|
}: FolderItemsProps) => (
|
|
52
53
|
<StyledUL role="group" firstLevel={firstLevel}>
|
|
53
54
|
{data.map(({ name, data: dataChildren, id, url, icon }, _index) => {
|
|
@@ -71,6 +72,7 @@ const FolderItems = ({
|
|
|
71
72
|
hideArrow={dataChildren?.length === 0 || newIdPaths.length >= MAX_LEVEL_FOR_FOLDERS}
|
|
72
73
|
noPaddingWhenArrowIsHidden={editable && firstLevel && dataChildren?.length === 0}
|
|
73
74
|
setFocusedFolderId={setFocusedFolderId}
|
|
75
|
+
folderChild={folderChild}
|
|
74
76
|
/>
|
|
75
77
|
</div>
|
|
76
78
|
{newFolder?.parentId === id && (
|
|
@@ -98,6 +100,7 @@ const FolderItems = ({
|
|
|
98
100
|
focusedFolderId={focusedFolderId}
|
|
99
101
|
setFocusedFolderId={setFocusedFolderId}
|
|
100
102
|
firstLevel={false}
|
|
103
|
+
folderChild={folderChild}
|
|
101
104
|
/>
|
|
102
105
|
)}
|
|
103
106
|
</StyledLI>
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
|
|
9
9
|
import React, { useEffect, useState, useRef, useMemo } from 'react';
|
|
10
10
|
import { uuid } from '@ndla/util';
|
|
11
|
-
import
|
|
11
|
+
import { AddButton } from '@ndla/button';
|
|
12
12
|
import Tooltip from '@ndla/tooltip';
|
|
13
13
|
import { useTranslation } from 'react-i18next';
|
|
14
14
|
import styled from '@emotion/styled';
|
|
@@ -40,6 +40,7 @@ const TreeStructure = ({
|
|
|
40
40
|
framed,
|
|
41
41
|
folderIdMarkedByDefault,
|
|
42
42
|
defaultOpenFolders,
|
|
43
|
+
folderChild,
|
|
43
44
|
}: TreeStructureProps) => {
|
|
44
45
|
const { t } = useTranslation();
|
|
45
46
|
const [newFolder, setNewFolder] = useState<NewFolderProps | undefined>();
|
|
@@ -118,9 +119,6 @@ const TreeStructure = ({
|
|
|
118
119
|
setFocusedFolderId(id);
|
|
119
120
|
};
|
|
120
121
|
|
|
121
|
-
const disableAddFolderButton =
|
|
122
|
-
markedFolderId === undefined || getPathOfFolder(data, markedFolderId).length >= MAX_LEVEL_FOR_FOLDERS;
|
|
123
|
-
|
|
124
122
|
return (
|
|
125
123
|
<div
|
|
126
124
|
ref={treestructureRef}
|
|
@@ -155,6 +153,7 @@ const TreeStructure = ({
|
|
|
155
153
|
focusedFolderId={focusedFolderId}
|
|
156
154
|
setFocusedFolderId={setFocusedFolderId}
|
|
157
155
|
firstLevel
|
|
156
|
+
folderChild={folderChild}
|
|
158
157
|
/>
|
|
159
158
|
</TreeStructureStyledWrapper>
|
|
160
159
|
{editable && (
|
|
@@ -163,17 +162,14 @@ const TreeStructure = ({
|
|
|
163
162
|
tooltip={t('myNdla.newFolderUnder', {
|
|
164
163
|
folderName: getFolderName(data, markedFolderId),
|
|
165
164
|
})}>
|
|
166
|
-
<
|
|
167
|
-
|
|
168
|
-
light
|
|
169
|
-
disabled={disableAddFolderButton}
|
|
165
|
+
<AddButton
|
|
166
|
+
aria-label={t('myNdla.newFolder')}
|
|
170
167
|
onClick={() => {
|
|
171
168
|
const paths = getPathOfFolder(data, markedFolderId || '');
|
|
172
169
|
const idPaths = getIdPathsOfFolder(data, markedFolderId || '');
|
|
173
170
|
setNewFolder({ idPaths, parentId: paths[paths.length - 1] });
|
|
174
|
-
}}
|
|
175
|
-
|
|
176
|
-
</Button>
|
|
171
|
+
}}
|
|
172
|
+
/>
|
|
177
173
|
</Tooltip>
|
|
178
174
|
</AddFolderWrapper>
|
|
179
175
|
)}
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
*
|
|
7
7
|
*/
|
|
8
8
|
|
|
9
|
-
import React from 'react';
|
|
9
|
+
import React, { ReactNode } from 'react';
|
|
10
10
|
|
|
11
11
|
export interface FolderStructureProps {
|
|
12
12
|
id: string;
|
|
@@ -17,7 +17,7 @@ export interface FolderStructureProps {
|
|
|
17
17
|
status?: string;
|
|
18
18
|
openAsDefault?: boolean;
|
|
19
19
|
url?: string;
|
|
20
|
-
icon?:
|
|
20
|
+
icon?: ReactNode;
|
|
21
21
|
}
|
|
22
22
|
|
|
23
23
|
export interface NewFolderProps {
|
|
@@ -38,6 +38,7 @@ export interface TreeStructureProps extends CommonFolderProps {
|
|
|
38
38
|
folderIdMarkedByDefault?: string;
|
|
39
39
|
onNewFolder: (props: { value: string; parentId?: string; idPaths: number[] }) => Promise<string>;
|
|
40
40
|
defaultOpenFolders?: string[];
|
|
41
|
+
folderChild?: FolderChildFuncType;
|
|
41
42
|
}
|
|
42
43
|
|
|
43
44
|
export type onCreateNewFolderProp = ({
|
|
@@ -51,6 +52,8 @@ export type onCreateNewFolderProp = ({
|
|
|
51
52
|
export type SetOpenFolderProp = React.Dispatch<React.SetStateAction<Set<string>>>;
|
|
52
53
|
export type SetFocusedFolderId = React.Dispatch<React.SetStateAction<string | undefined>>;
|
|
53
54
|
|
|
55
|
+
export type FolderChildFuncType = (id: string, tabIndex: number) => ReactNode;
|
|
56
|
+
|
|
54
57
|
export interface FolderItemsProps extends CommonFolderProps {
|
|
55
58
|
onToggleOpen: (id: string) => void;
|
|
56
59
|
onSaveNewFolder: (value: string) => void;
|
|
@@ -65,5 +68,6 @@ export interface FolderItemsProps extends CommonFolderProps {
|
|
|
65
68
|
setFocusedFolderId: SetFocusedFolderId;
|
|
66
69
|
firstLevel: boolean;
|
|
67
70
|
keyNavigationFocusIsCreateFolderButton?: boolean;
|
|
68
|
-
icon?:
|
|
71
|
+
icon?: ReactNode;
|
|
72
|
+
folderChild?: FolderChildFuncType;
|
|
69
73
|
}
|
|
@@ -15,7 +15,7 @@ const TreeStructureWrapper = styled.div<{ framed?: boolean }>`
|
|
|
15
15
|
${({ framed }) =>
|
|
16
16
|
framed
|
|
17
17
|
? css`
|
|
18
|
-
border: 1px solid ${colors.brand.
|
|
18
|
+
border: 1px solid ${colors.brand.neutral7};
|
|
19
19
|
border-radius: ${misc.borderRadius};
|
|
20
20
|
max-height: 400px;
|
|
21
21
|
overflow-y: scroll;
|
package/src/index.ts
CHANGED
|
@@ -67,7 +67,9 @@ export {
|
|
|
67
67
|
export { default as FactBox } from './FactBox';
|
|
68
68
|
|
|
69
69
|
export { default as Image, ImageLink, makeSrcQueryString } from './Image';
|
|
70
|
+
export type { ImageCrop, ImageFocalPoint } from './Image';
|
|
70
71
|
|
|
72
|
+
export type { HeroContentType } from './Hero';
|
|
71
73
|
export {
|
|
72
74
|
SubjectMaterialHero,
|
|
73
75
|
TasksAndActivitiesHero,
|
|
@@ -81,7 +83,15 @@ export {
|
|
|
81
83
|
|
|
82
84
|
export { Footer, EditorName, FooterText, FooterAuth } from './Footer';
|
|
83
85
|
|
|
84
|
-
export {
|
|
86
|
+
export {
|
|
87
|
+
Figure,
|
|
88
|
+
FigureCaption,
|
|
89
|
+
FigureLicenseDialog,
|
|
90
|
+
FigureExpandButton,
|
|
91
|
+
FigureOpenDialogButton,
|
|
92
|
+
FigureBylineExpandButton,
|
|
93
|
+
} from './Figure';
|
|
94
|
+
export type { FigureType } from './Figure';
|
|
85
95
|
|
|
86
96
|
export { LanguageSelector } from './LanguageSelector';
|
|
87
97
|
|
|
@@ -117,7 +127,7 @@ export { default as CreatedBy } from './CreatedBy';
|
|
|
117
127
|
|
|
118
128
|
export { default as Breadcrumblist } from './Breadcrumblist';
|
|
119
129
|
|
|
120
|
-
export { MessageBox, MessageBoxTag,
|
|
130
|
+
export { MessageBox, MessageBoxTag, MessageBanner } from './Messages';
|
|
121
131
|
|
|
122
132
|
export { ResourceBox } from './ResourceBox';
|
|
123
133
|
|
|
@@ -157,7 +167,7 @@ export { default as AuthorInfo } from './AuthorInfo';
|
|
|
157
167
|
export { default as Breadcrumb, HeaderBreadcrumb, HomeBreadcrumb, ActionBreadcrumb } from './Breadcrumb';
|
|
158
168
|
export type { SimpleBreadcrumbItem, IndexedBreadcrumbItem } from './Breadcrumb';
|
|
159
169
|
|
|
160
|
-
export type { BreadcrumbItemProps } from './Breadcrumblist
|
|
170
|
+
export type { BreadcrumbItemProps } from './Breadcrumblist';
|
|
161
171
|
export { i18nInstance, formatNestedMessages, formatMessage } from './i18n';
|
|
162
172
|
export { default as ResourceGroup } from './ResourceGroup';
|
|
163
173
|
|
|
@@ -221,7 +231,10 @@ export { default as ContentCard } from './ContentCard';
|
|
|
221
231
|
export { default as CopyParagraphButton } from './CopyParagraphButton';
|
|
222
232
|
|
|
223
233
|
export { default as ContentPlaceholder } from './ContentPlaceholder';
|
|
234
|
+
|
|
224
235
|
export { Notion, ConceptNotion } from './Notion';
|
|
236
|
+
export type { NotionVisualElementType, ConceptNotionType } from './Notion';
|
|
237
|
+
|
|
225
238
|
export { BannerCard } from './BannerCard';
|
|
226
239
|
export { VerticalNavigation, Folder, FolderInput } from './MyNdla';
|
|
227
240
|
export { ListResource, BlockResource } from './Resource';
|
|
@@ -347,7 +347,7 @@ const messages = {
|
|
|
347
347
|
resources:
|
|
348
348
|
'This is not a complete course produced by NDLA, but a collection of resources we hope you will find useful.',
|
|
349
349
|
subjectOutdated: 'This course is not updated to the current curriculum.',
|
|
350
|
-
subjectBeta: 'This course is in beta.',
|
|
350
|
+
subjectBeta: 'This course is in beta. New resources are being added continously.',
|
|
351
351
|
newVersion:
|
|
352
352
|
'This learning resource is not updated to the current curriculum. You can find an updated version here: ',
|
|
353
353
|
frontPageBeta:
|
|
@@ -346,7 +346,7 @@ const messages = {
|
|
|
346
346
|
resources:
|
|
347
347
|
'Dette er ikke et komplett læremiddel produsert av NDLA, men ei ressurssamling som vi håper kan være nyttig for deg.',
|
|
348
348
|
subjectOutdated: 'Dette faget følger en utgått læreplan.',
|
|
349
|
-
subjectBeta: 'Dette faget er i betaversjon.',
|
|
349
|
+
subjectBeta: 'Dette faget er i betaversjon. Vi fyller på med ressurser fortløpende.',
|
|
350
350
|
newVersion:
|
|
351
351
|
'Denne læringsressursen er ikke oppdatert etter gjeldende læreplan. Du finner en oppdatert versjon her: ',
|
|
352
352
|
frontPageBeta:
|
|
@@ -347,7 +347,7 @@ const messages = {
|
|
|
347
347
|
resources:
|
|
348
348
|
'Dette er ikkje eit komplett læremiddel produsert av NDLA, men ei ressurssamling som vi håper kan vere nyttig for deg.',
|
|
349
349
|
subjectOutdated: 'Dette faget følgjer ein utgått læreplan.',
|
|
350
|
-
subjectBeta: 'Dette faget er i betaversjon.',
|
|
350
|
+
subjectBeta: 'Dette faget er i betaversjon. Vi fyller på med ressurser fortløpande.',
|
|
351
351
|
newVersion:
|
|
352
352
|
'Denne læringsressursen er ikkje oppdatert etter gjeldande læreplan. Du finn ein oppdatert versjon her: ',
|
|
353
353
|
frontPageBeta:
|
|
@@ -346,7 +346,7 @@ const messages = {
|
|
|
346
346
|
resources:
|
|
347
347
|
'Dette er ikke et komplett læremiddel produsert av NDLA, men ei ressurssamling som vi håper kan være nyttig for deg.',
|
|
348
348
|
subjectOutdated: 'Dette faget følger en utgått læreplan.',
|
|
349
|
-
subjectBeta: 'Dette faget er i betaversjon.',
|
|
349
|
+
subjectBeta: 'Dette faget er i betaversjon. Vi fyller på med ressurser fortløpende.',
|
|
350
350
|
newVersion:
|
|
351
351
|
'Denne læringsressursen er ikke oppdatert etter gjeldende læreplan. Du finner en oppdatert versjon her: ',
|
|
352
352
|
frontPageBeta:
|
|
@@ -346,7 +346,7 @@ const messages = {
|
|
|
346
346
|
resources:
|
|
347
347
|
'Dette er ikke et komplett læremiddel produsert av NDLA, men ei ressurssamling som vi håper kan være nyttig for deg.',
|
|
348
348
|
subjectOutdated: 'Dette faget følger en utgått læreplan.',
|
|
349
|
-
subjectBeta: 'Dette faget er i betaversjon.',
|
|
349
|
+
subjectBeta: 'Dette faget er i betaversjon. Vi fyller på med ressurser fortløpende.',
|
|
350
350
|
newVersion:
|
|
351
351
|
'Denne læringsressursen er ikke oppdatert etter gjeldende læreplan. Du finner en oppdatert versjon her: ',
|
|
352
352
|
frontPageBeta:
|