frontend: migration to SvelteKit 2 + Sveltestrap 6
This commit is contained in:
parent
fe786e8b93
commit
4dedcfc420
@ -56,12 +56,11 @@ build-evdist:
|
|||||||
|
|
||||||
build-frontend-ui:
|
build-frontend-ui:
|
||||||
stage: build
|
stage: build
|
||||||
image: node:20-alpine3.18
|
image: node:21-alpine
|
||||||
before_script:
|
before_script:
|
||||||
script:
|
script:
|
||||||
- cd frontend/fic
|
- cd frontend/fic
|
||||||
- npm install --network-timeout=100000
|
- npm install --network-timeout=100000
|
||||||
- sed -i 's!@popperjs/core/dist/esm/popper!@popperjs/core!' node_modules/sveltestrap/src/*.js node_modules/sveltestrap/src/*.svelte
|
|
||||||
- npm run build
|
- npm run build
|
||||||
|
|
||||||
build-dashboard:
|
build-dashboard:
|
||||||
|
@ -5,7 +5,6 @@ WORKDIR /ui
|
|||||||
COPY frontend/fic/ .
|
COPY frontend/fic/ .
|
||||||
|
|
||||||
RUN npm install --network-timeout=100000 && \
|
RUN npm install --network-timeout=100000 && \
|
||||||
sed -i 's!@popperjs/core/dist/esm/popper!@popperjs/core!' node_modules/sveltestrap/src/*.js node_modules/sveltestrap/src/*.svelte && \
|
|
||||||
npm run build
|
npm run build
|
||||||
|
|
||||||
|
|
||||||
|
@ -5,7 +5,6 @@ WORKDIR /ui
|
|||||||
COPY frontend/fic/ .
|
COPY frontend/fic/ .
|
||||||
|
|
||||||
RUN npm install --network-timeout=100000 && \
|
RUN npm install --network-timeout=100000 && \
|
||||||
sed -i 's!@popperjs/core/dist/esm/popper!@popperjs/core!' node_modules/sveltestrap/src/*.js node_modules/sveltestrap/src/*.svelte && \
|
|
||||||
npm run build
|
npm run build
|
||||||
|
|
||||||
|
|
||||||
|
@ -1,11 +1,3 @@
|
|||||||
{
|
{
|
||||||
"extends": "./.svelte-kit/tsconfig.json",
|
"extends": "./.svelte-kit/tsconfig.json"
|
||||||
"compilerOptions": {
|
|
||||||
"baseUrl": ".",
|
|
||||||
"paths": {
|
|
||||||
"$lib": ["src/lib"],
|
|
||||||
"$lib/*": ["src/lib/*"]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"include": ["src/**/*.d.ts", "src/**/*.js", "src/**/*.svelte"]
|
|
||||||
}
|
}
|
||||||
|
963
frontend/fic/package-lock.json
generated
963
frontend/fic/package-lock.json
generated
File diff suppressed because it is too large
Load Diff
@ -9,18 +9,19 @@
|
|||||||
"format": "prettier --ignore-path .gitignore --write --plugin-search-dir=. ."
|
"format": "prettier --ignore-path .gitignore --write --plugin-search-dir=. ."
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@sveltejs/adapter-static": "^2.0.0",
|
"@sveltejs/adapter-static": "^3.0.0",
|
||||||
"@sveltejs/kit": "^1.0.0",
|
"@sveltejs/kit": "^2.0.0",
|
||||||
|
"@sveltejs/vite-plugin-svelte": "^3.0.0",
|
||||||
"eslint": "^8.4.2",
|
"eslint": "^8.4.2",
|
||||||
"eslint-config-prettier": "^9.0.0",
|
"eslint-config-prettier": "^9.0.0",
|
||||||
"eslint-plugin-svelte3": "^4.0.0",
|
"eslint-plugin-svelte": "^2.35.1",
|
||||||
"prettier": "^3.0.0",
|
"prettier": "^3.0.0",
|
||||||
"prettier-plugin-svelte": "^3.0.0",
|
"prettier-plugin-svelte": "^3.1.2",
|
||||||
"sass": "^1.51.0",
|
"sass": "^1.51.0",
|
||||||
"sass-loader": "^13.0.0",
|
"sass-loader": "^13.0.0",
|
||||||
"svelte": "^3.48.0",
|
"svelte": "^4.0.0",
|
||||||
"sveltestrap": "^5.9.0",
|
"@sveltestrap/sveltestrap": "^6.2.1",
|
||||||
"vite": "^4.0.0"
|
"vite": "^5.0.0"
|
||||||
},
|
},
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
@ -30,6 +31,6 @@
|
|||||||
"bootswatch": "^5.1.3",
|
"bootswatch": "^5.1.3",
|
||||||
"hash-wasm": "^4.9.0",
|
"hash-wasm": "^4.9.0",
|
||||||
"seedrandom": "^3.0.5",
|
"seedrandom": "^3.0.5",
|
||||||
"vite": "^4.0.0"
|
"vite": "^5.0.0"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -8,7 +8,7 @@
|
|||||||
Col,
|
Col,
|
||||||
Icon,
|
Icon,
|
||||||
Row,
|
Row,
|
||||||
} from 'sveltestrap';
|
} from '@sveltestrap/sveltestrap';
|
||||||
|
|
||||||
import { my } from '$lib/stores/my.js';
|
import { my } from '$lib/stores/my.js';
|
||||||
import { max_solved } from '$lib/stores/themes.js';
|
import { max_solved } from '$lib/stores/themes.js';
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
import {
|
import {
|
||||||
ButtonGroup,
|
ButtonGroup,
|
||||||
Icon,
|
Icon,
|
||||||
} from 'sveltestrap';
|
} from '@sveltestrap/sveltestrap';
|
||||||
|
|
||||||
import { time } from '$lib/stores/settings.js';
|
import { time } from '$lib/stores/settings.js';
|
||||||
|
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
Icon,
|
Icon,
|
||||||
ListGroup,
|
ListGroup,
|
||||||
ListGroupItem,
|
ListGroupItem,
|
||||||
} from 'sveltestrap';
|
} from '@sveltestrap/sveltestrap';
|
||||||
|
|
||||||
import FileSize from './FileSize.svelte';
|
import FileSize from './FileSize.svelte';
|
||||||
|
|
||||||
|
@ -11,7 +11,7 @@
|
|||||||
Progress,
|
Progress,
|
||||||
Spinner,
|
Spinner,
|
||||||
Tooltip,
|
Tooltip,
|
||||||
} from 'sveltestrap';
|
} from '@sveltestrap/sveltestrap';
|
||||||
|
|
||||||
import { blake2b } from 'hash-wasm';
|
import { blake2b } from 'hash-wasm';
|
||||||
|
|
||||||
|
@ -8,7 +8,7 @@
|
|||||||
ListGroup,
|
ListGroup,
|
||||||
ListGroupItem,
|
ListGroupItem,
|
||||||
Spinner,
|
Spinner,
|
||||||
} from 'sveltestrap';
|
} from '@sveltestrap/sveltestrap';
|
||||||
|
|
||||||
import { my } from '$lib/stores/my.js';
|
import { my } from '$lib/stores/my.js';
|
||||||
import { settings } from '$lib/stores/settings.js';
|
import { settings } from '$lib/stores/settings.js';
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
Icon,
|
Icon,
|
||||||
ListGroup,
|
ListGroup,
|
||||||
ListGroupItem,
|
ListGroupItem,
|
||||||
} from 'sveltestrap';
|
} from '@sveltestrap/sveltestrap';
|
||||||
|
|
||||||
import DateFormat from './DateFormat.svelte';
|
import DateFormat from './DateFormat.svelte';
|
||||||
|
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
import {
|
import {
|
||||||
CardBody,
|
CardBody,
|
||||||
Icon,
|
Icon,
|
||||||
} from 'sveltestrap';
|
} from '@sveltestrap/sveltestrap';
|
||||||
|
|
||||||
export let uri = "";
|
export let uri = "";
|
||||||
</script>
|
</script>
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
Button,
|
Button,
|
||||||
Icon,
|
Icon,
|
||||||
Spinner,
|
Spinner,
|
||||||
} from 'sveltestrap';
|
} from '@sveltestrap/sveltestrap';
|
||||||
import { tick } from 'svelte';
|
import { tick } from 'svelte';
|
||||||
|
|
||||||
import { my } from '$lib/stores/my.js';
|
import { my } from '$lib/stores/my.js';
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
import {
|
import {
|
||||||
Button,
|
Button,
|
||||||
Icon,
|
Icon,
|
||||||
} from 'sveltestrap';
|
} from '@sveltestrap/sveltestrap';
|
||||||
|
|
||||||
import FlagKey from './FlagKey.svelte';
|
import FlagKey from './FlagKey.svelte';
|
||||||
|
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
import {
|
import {
|
||||||
Button,
|
Button,
|
||||||
Icon,
|
Icon,
|
||||||
} from 'sveltestrap';
|
} from '@sveltestrap/sveltestrap';
|
||||||
|
|
||||||
import { issues, issues_idx } from '$lib/stores/issues.js';
|
import { issues, issues_idx } from '$lib/stores/issues.js';
|
||||||
import { settings } from '$lib/stores/settings.js';
|
import { settings } from '$lib/stores/settings.js';
|
||||||
|
@ -17,7 +17,7 @@
|
|||||||
NavLink,
|
NavLink,
|
||||||
Progress,
|
Progress,
|
||||||
Row,
|
Row,
|
||||||
} from 'sveltestrap';
|
} from '@sveltestrap/sveltestrap';
|
||||||
|
|
||||||
import { challengeInfo } from '$lib/stores/challengeinfo.js';
|
import { challengeInfo } from '$lib/stores/challengeinfo.js';
|
||||||
import { my } from '$lib/stores/my.js';
|
import { my } from '$lib/stores/my.js';
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
import {
|
import {
|
||||||
ButtonGroup,
|
ButtonGroup,
|
||||||
Icon,
|
Icon,
|
||||||
} from 'sveltestrap';
|
} from '@sveltestrap/sveltestrap';
|
||||||
|
|
||||||
import Clock from './Clock.svelte';
|
import Clock from './Clock.svelte';
|
||||||
import { challengeInfo } from '$lib/stores/challengeinfo.js';
|
import { challengeInfo } from '$lib/stores/challengeinfo.js';
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
Icon,
|
Icon,
|
||||||
NavItem,
|
NavItem,
|
||||||
NavLink,
|
NavLink,
|
||||||
} from 'sveltestrap';
|
} from '@sveltestrap/sveltestrap';
|
||||||
|
|
||||||
import { issues, issues_need_info, issues_nb_responses, issues_known_responses } from '$lib/stores/issues.js';
|
import { issues, issues_need_info, issues_nb_responses, issues_known_responses } from '$lib/stores/issues.js';
|
||||||
import { settings } from '$lib/stores/settings.js';
|
import { settings } from '$lib/stores/settings.js';
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
import {
|
import {
|
||||||
Carousel,
|
Carousel,
|
||||||
CarouselItem,
|
CarouselItem,
|
||||||
} from 'sveltestrap';
|
} from '@sveltestrap/sveltestrap';
|
||||||
|
|
||||||
import { challengeInfo } from '$lib/stores/challengeinfo.js';
|
import { challengeInfo } from '$lib/stores/challengeinfo.js';
|
||||||
|
|
||||||
|
@ -6,7 +6,7 @@
|
|||||||
DropdownMenu,
|
DropdownMenu,
|
||||||
DropdownToggle,
|
DropdownToggle,
|
||||||
Icon,
|
Icon,
|
||||||
} from 'sveltestrap';
|
} from '@sveltestrap/sveltestrap';
|
||||||
|
|
||||||
import { my } from '$lib/stores/my.js';
|
import { my } from '$lib/stores/my.js';
|
||||||
import { tags } from '$lib/stores/mythemes.js';
|
import { tags } from '$lib/stores/mythemes.js';
|
||||||
|
@ -6,7 +6,7 @@
|
|||||||
DropdownMenu,
|
DropdownMenu,
|
||||||
DropdownToggle,
|
DropdownToggle,
|
||||||
Icon,
|
Icon,
|
||||||
} from 'sveltestrap';
|
} from '@sveltestrap/sveltestrap';
|
||||||
|
|
||||||
import { my } from '$lib/stores/my.js';
|
import { my } from '$lib/stores/my.js';
|
||||||
import { max_solved } from '$lib/stores/themes.js';
|
import { max_solved } from '$lib/stores/themes.js';
|
||||||
|
@ -10,7 +10,7 @@
|
|||||||
Container,
|
Container,
|
||||||
Icon,
|
Icon,
|
||||||
Row,
|
Row,
|
||||||
} from 'sveltestrap';
|
} from '@sveltestrap/sveltestrap';
|
||||||
|
|
||||||
import { settings } from '$lib/stores/settings.js';
|
import { settings } from '$lib/stores/settings.js';
|
||||||
|
|
||||||
|
@ -10,7 +10,7 @@
|
|||||||
Container,
|
Container,
|
||||||
Icon,
|
Icon,
|
||||||
Row,
|
Row,
|
||||||
} from 'sveltestrap';
|
} from '@sveltestrap/sveltestrap';
|
||||||
|
|
||||||
import { settings } from '$lib/stores/settings.js';
|
import { settings } from '$lib/stores/settings.js';
|
||||||
import { teams } from '$lib/stores/teams.js';
|
import { teams } from '$lib/stores/teams.js';
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
Button,
|
Button,
|
||||||
Icon,
|
Icon,
|
||||||
Row,
|
Row,
|
||||||
} from 'sveltestrap';
|
} from '@sveltestrap/sveltestrap';
|
||||||
|
|
||||||
const dispatch = createEventDispatcher();
|
const dispatch = createEventDispatcher();
|
||||||
|
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
Modal,
|
Modal,
|
||||||
ModalBody,
|
ModalBody,
|
||||||
ModalHeader
|
ModalHeader
|
||||||
} from 'sveltestrap';
|
} from '@sveltestrap/sveltestrap';
|
||||||
const toggle = () => (open = !open);
|
const toggle = () => (open = !open);
|
||||||
|
|
||||||
export let exercice = null;
|
export let exercice = null;
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
Column,
|
Column,
|
||||||
Icon,
|
Icon,
|
||||||
Table,
|
Table,
|
||||||
} from 'sveltestrap';
|
} from '@sveltestrap/sveltestrap';
|
||||||
|
|
||||||
import DateFormat from '$lib/components/DateFormat.svelte';
|
import DateFormat from '$lib/components/DateFormat.svelte';
|
||||||
|
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
CardHeader,
|
CardHeader,
|
||||||
CardBody,
|
CardBody,
|
||||||
Icon,
|
Icon,
|
||||||
} from 'sveltestrap';
|
} from '@sveltestrap/sveltestrap';
|
||||||
|
|
||||||
import { my } from '$lib/stores/my.js';
|
import { my } from '$lib/stores/my.js';
|
||||||
import { settings } from '$lib/stores/settings.js';
|
import { settings } from '$lib/stores/settings.js';
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
CardHeader,
|
CardHeader,
|
||||||
CardBody,
|
CardBody,
|
||||||
Icon,
|
Icon,
|
||||||
} from 'sveltestrap';
|
} from '@sveltestrap/sveltestrap';
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<Card class="mb-3 border-warning">
|
<Card class="mb-3 border-warning">
|
||||||
|
@ -6,7 +6,7 @@
|
|||||||
Icon,
|
Icon,
|
||||||
ListGroup,
|
ListGroup,
|
||||||
ListGroupItem,
|
ListGroupItem,
|
||||||
} from 'sveltestrap';
|
} from '@sveltestrap/sveltestrap';
|
||||||
|
|
||||||
export let members = [];
|
export let members = [];
|
||||||
</script>
|
</script>
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
BreadcrumbItem,
|
BreadcrumbItem,
|
||||||
Card,
|
Card,
|
||||||
Icon,
|
Icon,
|
||||||
} from 'sveltestrap';
|
} from '@sveltestrap/sveltestrap';
|
||||||
|
|
||||||
import { my } from '$lib/stores/my.js';
|
import { my } from '$lib/stores/my.js';
|
||||||
|
|
||||||
|
@ -6,7 +6,7 @@
|
|||||||
import {
|
import {
|
||||||
Container,
|
Container,
|
||||||
//Styles,
|
//Styles,
|
||||||
} from 'sveltestrap';
|
} from '@sveltestrap/sveltestrap';
|
||||||
|
|
||||||
import Header from '$lib/components/Header.svelte';
|
import Header from '$lib/components/Header.svelte';
|
||||||
|
|
||||||
|
@ -8,7 +8,7 @@
|
|||||||
Col,
|
Col,
|
||||||
Icon,
|
Icon,
|
||||||
Row,
|
Row,
|
||||||
} from 'sveltestrap';
|
} from '@sveltestrap/sveltestrap';
|
||||||
|
|
||||||
import { goto } from '$app/navigation';
|
import { goto } from '$app/navigation';
|
||||||
|
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
Container,
|
Container,
|
||||||
Icon,
|
Icon,
|
||||||
Spinner,
|
Spinner,
|
||||||
} from 'sveltestrap';
|
} from '@sveltestrap/sveltestrap';
|
||||||
|
|
||||||
import { challengeInfo } from '$lib/stores/challengeinfo';
|
import { challengeInfo } from '$lib/stores/challengeinfo';
|
||||||
import { current_exercice } from '$lib/stores/exercices';
|
import { current_exercice } from '$lib/stores/exercices';
|
||||||
|
@ -8,7 +8,7 @@
|
|||||||
Col,
|
Col,
|
||||||
Icon,
|
Icon,
|
||||||
Row,
|
Row,
|
||||||
} from 'sveltestrap';
|
} from '@sveltestrap/sveltestrap';
|
||||||
|
|
||||||
import { goto } from '$app/navigation';
|
import { goto } from '$app/navigation';
|
||||||
|
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
Alert,
|
Alert,
|
||||||
Icon,
|
Icon,
|
||||||
Spinner,
|
Spinner,
|
||||||
} from 'sveltestrap';
|
} from '@sveltestrap/sveltestrap';
|
||||||
|
|
||||||
import ThemeNav from '$lib/components/ThemeNav.svelte';
|
import ThemeNav from '$lib/components/ThemeNav.svelte';
|
||||||
|
|
||||||
|
@ -11,7 +11,7 @@
|
|||||||
Icon,
|
Icon,
|
||||||
Row,
|
Row,
|
||||||
Spinner,
|
Spinner,
|
||||||
} from 'sveltestrap';
|
} from '@sveltestrap/sveltestrap';
|
||||||
|
|
||||||
import ExerciceDownloads from '$lib/components/ExerciceDownloads.svelte';
|
import ExerciceDownloads from '$lib/components/ExerciceDownloads.svelte';
|
||||||
import ExerciceFlags from '$lib/components/ExerciceFlags.svelte';
|
import ExerciceFlags from '$lib/components/ExerciceFlags.svelte';
|
||||||
|
@ -8,7 +8,7 @@
|
|||||||
Container,
|
Container,
|
||||||
Icon,
|
Icon,
|
||||||
Row,
|
Row,
|
||||||
} from 'sveltestrap';
|
} from '@sveltestrap/sveltestrap';
|
||||||
|
|
||||||
import ScoreGrid from '$lib/components/ScoreGrid.svelte';
|
import ScoreGrid from '$lib/components/ScoreGrid.svelte';
|
||||||
import TeamChangeName from '$lib/components/TeamChangeName.svelte';
|
import TeamChangeName from '$lib/components/TeamChangeName.svelte';
|
||||||
|
@ -8,7 +8,7 @@
|
|||||||
Container,
|
Container,
|
||||||
Icon,
|
Icon,
|
||||||
Table,
|
Table,
|
||||||
} from 'sveltestrap';
|
} from '@sveltestrap/sveltestrap';
|
||||||
|
|
||||||
import DateFormat from '$lib/components/DateFormat.svelte';
|
import DateFormat from '$lib/components/DateFormat.svelte';
|
||||||
|
|
||||||
|
@ -8,7 +8,7 @@
|
|||||||
Container,
|
Container,
|
||||||
Icon,
|
Icon,
|
||||||
Row,
|
Row,
|
||||||
} from 'sveltestrap';
|
} from '@sveltestrap/sveltestrap';
|
||||||
|
|
||||||
import { my } from '$lib/stores/my.js';
|
import { my } from '$lib/stores/my.js';
|
||||||
import { rank } from '$lib/stores/teams.js';
|
import { rank } from '$lib/stores/teams.js';
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
Container,
|
Container,
|
||||||
Icon,
|
Icon,
|
||||||
Row,
|
Row,
|
||||||
} from 'sveltestrap';
|
} from '@sveltestrap/sveltestrap';
|
||||||
|
|
||||||
import { goto } from '$app/navigation';
|
import { goto } from '$app/navigation';
|
||||||
|
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
CardBody,
|
CardBody,
|
||||||
Container,
|
Container,
|
||||||
Icon,
|
Icon,
|
||||||
} from 'sveltestrap';
|
} from '@sveltestrap/sveltestrap';
|
||||||
|
|
||||||
import { challengeInfo } from '$lib/stores/challengeinfo.js';
|
import { challengeInfo } from '$lib/stores/challengeinfo.js';
|
||||||
import { settings } from '$lib/stores/settings.js';
|
import { settings } from '$lib/stores/settings.js';
|
||||||
|
@ -8,7 +8,7 @@
|
|||||||
Container,
|
Container,
|
||||||
Icon,
|
Icon,
|
||||||
Row,
|
Row,
|
||||||
} from 'sveltestrap';
|
} from '@sveltestrap/sveltestrap';
|
||||||
|
|
||||||
import { goto } from '$app/navigation';
|
import { goto } from '$app/navigation';
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user