Skip to content

Commit 6ccffaa

Browse files
authored
Merge pull request #1395 from bcgov/update/dependencies
dependabot updates for portal frontend
2 parents ad5ea69 + 8f95d0d commit 6ccffaa

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

42 files changed

+669
-536
lines changed

src/ECER.Clients.RegistryPortal/ecer.clients.registryportal.client/package-lock.json

Lines changed: 270 additions & 236 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/ECER.Clients.RegistryPortal/ecer.clients.registryportal.client/package.json

Lines changed: 23 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -21,60 +21,60 @@
2121
"validate-colors": "tsx scripts/validate-colors.ts"
2222
},
2323
"dependencies": {
24-
"@mdi/font": "^7.3.67",
25-
"@vueuse/core": "^13.6.0",
24+
"@mdi/font": "^7.4.47",
25+
"@vueuse/core": "^13.9.0",
2626
"axios": "^1.11.0",
2727
"lodash": "^4.17.21",
2828
"luxon": "^3.7.1",
2929
"oidc-client-ts": "3.3.0",
30-
"openapi-client-axios": "^7.6.0",
30+
"openapi-client-axios": "^7.7.0",
3131
"pinia": "^3.0.3",
32-
"pinia-plugin-persistedstate": "^4.4.1",
32+
"pinia-plugin-persistedstate": "^4.5.0",
3333
"uuid": "^11.1.0",
34-
"vue": "^3.5.18",
34+
"vue": "^3.5.21",
3535
"vue-router": "^4.5.1",
3636
"vuetify": "^3.9.4"
3737
},
3838
"devDependencies": {
39-
"@chromatic-com/storybook": "^4.1.0",
40-
"@storybook/addon-docs": "^9.1.1",
41-
"@storybook/addon-vitest": "^9.1.1",
42-
"@storybook/vue3-vite": "^9.1.1",
39+
"@chromatic-com/storybook": "^4.1.1",
40+
"@storybook/addon-docs": "^9.1.4",
41+
"@storybook/addon-vitest": "^9.1.4",
42+
"@storybook/vue3-vite": "^9.1.4",
4343
"@tsconfig/node18": "^18.2.4",
4444
"@types/lodash": "^4.17.20",
4545
"@types/luxon": "^3.7.1",
46-
"@types/node": "^24.2.1",
46+
"@types/node": "^24.3.1",
4747
"@types/uuid": "^10.0.0",
4848
"@vitejs/plugin-vue": "^6.0.1",
4949
"@vitest/browser": "^3.2.4",
5050
"@vitest/coverage-v8": "^3.2.4",
5151
"@vue/eslint-config-prettier": "^10.2.0",
5252
"@vue/eslint-config-typescript": "^14.6.0",
53-
"@vue/tsconfig": "^0.7.0",
54-
"cypress": "^14.5.4",
55-
"eslint": "^9.33.0",
53+
"@vue/tsconfig": "^0.8.1",
54+
"cypress": "^15.1.0",
55+
"eslint": "^9.34.0",
5656
"eslint-plugin-chai-friendly": "^1.1.0",
57-
"eslint-plugin-cypress": "^5.1.0",
57+
"eslint-plugin-cypress": "^5.1.1",
5858
"eslint-plugin-mocha": "^11.1.0",
5959
"eslint-plugin-simple-import-sort": "^12.1.1",
60-
"eslint-plugin-storybook": "^9.1.2",
61-
"eslint-plugin-unused-imports": "^4.1.4",
60+
"eslint-plugin-storybook": "^9.1.4",
61+
"eslint-plugin-unused-imports": "^4.2.0",
6262
"eslint-plugin-vue": "^10.4.0",
6363
"husky": "^9.1.7",
6464
"openapicmd": "^2.7.0",
65-
"playwright": "^1.54.2",
66-
"sass": "^1.86.3",
67-
"storybook": "^9.1.1",
68-
"tsx": "^4.20.3",
65+
"playwright": "^1.55.0",
66+
"sass": "^1.92.0",
67+
"storybook": "^9.1.4",
68+
"tsx": "^4.20.5",
6969
"typescript": "~5.9.2",
70-
"vite": "^7.1.1",
70+
"vite": "^7.1.4",
7171
"vitest": "^3.2.4",
7272
"vue-eslint-parser": "^10.2.0",
73-
"vue-tsc": "^3.0.5"
73+
"vue-tsc": "^3.0.6"
7474
},
7575
"eslintConfig": {
7676
"extends": [
7777
"plugin:storybook/recommended"
7878
]
79-
}
79+
}
8080
}

src/ECER.Clients.RegistryPortal/ecer.clients.registryportal.client/src/components/AddProfessionalDevelopment.vue

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -253,7 +253,7 @@
253253
<script lang="ts">
254254
import { DateTime } from "luxon";
255255
import { defineComponent } from "vue";
256-
import { useRoute, useRouter } from "vue-router";
256+
import { useRouter } from "vue-router";
257257
import type { VForm, VInput } from "vuetify/components";
258258
import EceTextField from "@/components/inputs/EceTextField.vue";
259259
import EceDateInput from "@/components/inputs/EceDateInput.vue";
@@ -286,14 +286,13 @@ export default defineComponent({
286286
required: true,
287287
},
288288
},
289-
setup: async () => {
289+
setup: async (props) => {
290290
const applicationStore = useApplicationStore();
291291
const alertStore = useAlertStore();
292292
293293
const loadingStore = useLoadingStore();
294294
const router = useRouter();
295-
const route = useRoute();
296-
const applicationStatus = (await getApplicationStatus(route.params.applicationId.toString()))?.data;
295+
const applicationStatus = (await getApplicationStatus(props.applicationId.toString()))?.data;
297296
const certificationStore = useCertificationStore();
298297
299298
return {
@@ -388,6 +387,11 @@ export default defineComponent({
388387
for (let i = 0; i < filesArray.length; i++) {
389388
const file = filesArray[i];
390389
390+
if (!file) {
391+
console.warn("file is undefined");
392+
continue;
393+
}
394+
391395
// Check for file errors
392396
if (file.fileErrors && file.fileErrors.length > 0) {
393397
this.professionalDevelopment.areAttachedFilesValid = false;

src/ECER.Clients.RegistryPortal/ecer.clients.registryportal.client/src/components/ApplicationSummary.vue

Lines changed: 24 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -46,19 +46,19 @@
4646
<ApplicationSummaryActionListItem
4747
:active="!transcript.transcriptReceivedByRegistry"
4848
:text="`Transcript: ${transcript.educationalInstitutionName}`"
49-
:go-to="() => router.push({ name: 'viewTranscriptDetails', params: { applicationId: route.params.applicationId, transcriptId: transcript.id } })"
49+
:go-to="() => router.push({ name: 'viewTranscriptDetails', params: { applicationId: applicationId, transcriptId: transcript.id } })"
5050
/>
5151
<ApplicationSummaryActionListItem
5252
v-if="transcript.educationRecognition === 'NotRecognized'"
5353
:active="!transcript.courseOutlineReceivedByRegistry"
5454
:text="`Course outlines or syllabi: ${transcript.educationalInstitutionName}`"
55-
:go-to="() => router.push({ name: 'viewCourseOutline', params: { applicationId: route.params.applicationId, transcriptId: transcript.id } })"
55+
:go-to="() => router.push({ name: 'viewCourseOutline', params: { applicationId: applicationId, transcriptId: transcript.id } })"
5656
/>
5757
<ApplicationSummaryActionListItem
5858
v-if="transcript.educationRecognition === 'NotRecognized' && !applicationStatus?.certificationTypes?.includes('EceAssistant')"
5959
:active="!transcript.programConfirmationReceivedByRegistry"
6060
:text="`Program Confirmation Form: ${transcript.educationalInstitutionName}`"
61-
:go-to="() => router.push({ name: 'viewProgramConfirmation', params: { applicationId: route.params.applicationId, transcriptId: transcript.id } })"
61+
:go-to="() => router.push({ name: 'viewProgramConfirmation', params: { applicationId: applicationId, transcriptId: transcript.id } })"
6262
/>
6363
<ApplicationSummaryActionListItem
6464
v-if="
@@ -67,15 +67,15 @@
6767
"
6868
:active="!transcript.comprehensiveReportReceivedByRegistry"
6969
:text="`Comprehensive Report: ${transcript.educationalInstitutionName}`"
70-
:go-to="() => router.push({ name: 'viewComprehensiveReport', params: { applicationId: route.params.applicationId, transcriptId: transcript.id } })"
70+
:go-to="() => router.push({ name: 'viewComprehensiveReport', params: { applicationId: applicationId, transcriptId: transcript.id } })"
7171
/>
7272
</template>
7373
<ApplicationSummaryHeader text="References" />
7474
<ApplicationSummaryActionListItem
7575
v-if="showWorkExperience"
7676
:active="totalObservedWorkExperienceHours < totalRequiredWorkExperienceHours"
7777
:text="`${totalRequiredWorkExperienceHours} hours of work experience with reference`"
78-
:go-to="() => router.push({ name: 'manageWorkExperienceReferences', params: { applicationId: route.params.applicationId } })"
78+
:go-to="() => router.push({ name: 'manageWorkExperienceReferences', params: { applicationId: applicationId } })"
7979
/>
8080
<ApplicationSummaryCharacterReferenceListItem
8181
v-for="reference in applicationStatus?.characterReferencesStatus"
@@ -86,15 +86,15 @@
8686
() =>
8787
router.push({
8888
name: 'view-character-reference',
89-
params: { applicationId: route.params.applicationId, referenceId: reference.id?.toString() },
89+
params: { applicationId: applicationId, referenceId: reference.id?.toString() },
9090
})
9191
"
9292
:will-provide-reference="reference.willProvideReference ? true : false"
9393
/>
9494
<ApplicationSummaryActionListItem
9595
v-if="!hasCharacterReference"
9696
text="Add character reference"
97-
:go-to="() => router.push({ name: 'addCharacterReference', params: { applicationId: route.params.applicationId } })"
97+
:go-to="() => router.push({ name: 'addCharacterReference', params: { applicationId: applicationId } })"
9898
/>
9999
<ApplicationSummaryHeader v-if="showOtherInformation" text="Other information" />
100100
<ApplicationSummaryActionListItem
@@ -171,19 +171,19 @@
171171
<ApplicationSummaryActionListItem
172172
:active="!transcript.transcriptReceivedByRegistry"
173173
:text="`Transcript: ${transcript.educationalInstitutionName}`"
174-
:go-to="() => router.push({ name: 'manageTranscript', params: { applicationId: route.params.applicationId } })"
174+
:go-to="() => router.push({ name: 'manageTranscript', params: { applicationId: applicationId } })"
175175
/>
176176
<ApplicationSummaryActionListItem
177177
v-if="transcript.educationRecognition === 'NotRecognized'"
178178
:active="!transcript.courseOutlineReceivedByRegistry"
179179
:text="`Course outlines or syllabi: ${transcript.educationalInstitutionName}`"
180-
:go-to="() => router.push({ name: 'manageCourseOutline', params: { applicationId: route.params.applicationId } })"
180+
:go-to="() => router.push({ name: 'manageCourseOutline', params: { applicationId: applicationId } })"
181181
/>
182182
<ApplicationSummaryActionListItem
183183
v-if="transcript.educationRecognition === 'NotRecognized' && !applicationStatus?.certificationTypes?.includes('EceAssistant')"
184184
:active="!transcript.programConfirmationReceivedByRegistry"
185185
:text="`Program Confirmation Form: ${transcript.educationalInstitutionName}`"
186-
:go-to="() => router.push({ name: 'manageTranscript', params: { applicationId: route.params.applicationId } })"
186+
:go-to="() => router.push({ name: 'manageTranscript', params: { applicationId: applicationId } })"
187187
/>
188188
<ApplicationSummaryActionListItem
189189
v-if="
@@ -192,7 +192,7 @@
192192
"
193193
:active="!transcript.comprehensiveReportReceivedByRegistry"
194194
:text="`Comprehensive Report: ${transcript.educationalInstitutionName}`"
195-
:go-to="() => router.push({ name: 'manageComprehensiveReport', params: { applicationId: route.params.applicationId } })"
195+
:go-to="() => router.push({ name: 'manageComprehensiveReport', params: { applicationId: applicationId } })"
196196
/>
197197
</template>
198198
<ApplicationSummaryHeader
@@ -207,7 +207,7 @@
207207
<ApplicationSummaryActionListItem
208208
v-if="!hasCharacterReference"
209209
text="Add character reference"
210-
:go-to="() => router.push({ name: 'addCharacterReference', params: { applicationId: route.params.applicationId } })"
210+
:go-to="() => router.push({ name: 'addCharacterReference', params: { applicationId: applicationId } })"
211211
/>
212212
<ApplicationSummaryCharacterReferenceListItem
213213
v-for="reference in waitingForResponseCharacterReferences"
@@ -218,20 +218,20 @@
218218
() =>
219219
router.push({
220220
name: 'view-character-reference',
221-
params: { applicationId: route.params.applicationId, referenceId: reference.id?.toString() },
221+
params: { applicationId: applicationId, referenceId: reference.id?.toString() },
222222
})
223223
"
224224
:will-provide-reference="reference.willProvideReference ? true : false"
225225
/>
226226
<ApplicationSummaryActionListItem
227227
v-if="addMoreWorkExperienceReferencesFlag"
228228
:text="`${totalRequiredWorkExperienceHours} approved hours of work experience with reference`"
229-
:go-to="() => router.push({ name: 'manageWorkExperienceReferences', params: { applicationId: route.params.applicationId } })"
229+
:go-to="() => router.push({ name: 'manageWorkExperienceReferences', params: { applicationId: applicationId } })"
230230
/>
231231
<ApplicationSummaryActionListItem
232232
v-if="addMoreProfessionalDevelopmentFlag"
233233
:text="`${totalRequiredProfessionalDevelopmentHours} hours of professional development`"
234-
:go-to="() => router.push({ name: 'manageProfessionalDevelopment', params: { applicationId: route.params.applicationId } })"
234+
:go-to="() => router.push({ name: 'manageProfessionalDevelopment', params: { applicationId: applicationId } })"
235235
/>
236236
</div>
237237
</div>
@@ -241,7 +241,7 @@
241241

242242
<script lang="ts">
243243
import { defineComponent } from "vue";
244-
import { useRoute, useRouter } from "vue-router";
244+
import { useRouter } from "vue-router";
245245
import { useDisplay } from "vuetify";
246246
import { cleanPreferredName } from "@/utils/functions";
247247
import { getApplicationStatus } from "@/api/application";
@@ -270,17 +270,22 @@ export default defineComponent({
270270
ApplicationSummaryHeader,
271271
Breadcrumb,
272272
},
273-
setup: async () => {
273+
props: {
274+
applicationId: {
275+
type: String,
276+
required: true,
277+
},
278+
},
279+
setup: async (props) => {
274280
const { smAndUp } = useDisplay();
275281
const alertStore = useAlertStore();
276282
const configStore = useConfigStore();
277283
const applicationStore = useApplicationStore();
278284
const userStore = useUserStore();
279285
const router = useRouter();
280-
const route = useRoute();
281286
282287
await applicationStore.fetchApplications();
283-
const applicationStatus = (await getApplicationStatus(route.params.applicationId.toString()))?.data;
288+
const applicationStatus = (await getApplicationStatus(props.applicationId))?.data;
284289
userStore.setUserProfile(await getProfile());
285290
return {
286291
applicationStore,
@@ -293,7 +298,6 @@ export default defineComponent({
293298
smAndUp,
294299
formatDate,
295300
router,
296-
route,
297301
};
298302
},
299303

src/ECER.Clients.RegistryPortal/ecer.clients.registryportal.client/src/components/Breadcrumb.vue

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,7 @@ export default defineComponent({
8282
// Find the correct position based on rank
8383
let insertIndex = items.length;
8484
for (let i = 0; i < items.length; i++) {
85-
const itemRank = this.applicationPageRankings[items[i].routeName || ""];
85+
const itemRank = this.applicationPageRankings[items?.[i]?.routeName || ""];
8686
if (itemRank !== undefined && itemRank > rank) {
8787
insertIndex = i;
8888
break;

src/ECER.Clients.RegistryPortal/ecer.clients.registryportal.client/src/components/FileUploader.vue

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -207,7 +207,7 @@ export default defineComponent({
207207
this.errorBannerMessage = `You can only upload ${this.maxNumberOfFiles} files. You need to remove files before you can continue.`;
208208
}
209209
for (let i = 0; i < files.length; i++) {
210-
const file = files[i];
210+
const file = files[i] as File;
211211
let fileErrors: string[] = [];
212212
213213
if (file.size > this.maxFileSizeInBytes) {
@@ -254,13 +254,16 @@ export default defineComponent({
254254
const fileIndex = this.selectedFiles.findIndex((f: FileItem) => f.fileId === selectedFile.fileId);
255255
const total = progressEvent.total ? progressEvent.total : 10485760;
256256
const progress = Math.round((progressEvent.loaded * 100) / total);
257-
if (fileIndex > -1) {
257+
if (fileIndex > -1 && this.selectedFiles[fileIndex]) {
258258
this.selectedFiles[fileIndex].progress = progress;
259259
}
260260
});
261+
261262
if (response.data) {
262263
const fileIndex = this.selectedFiles.findIndex((f: FileItem) => f.fileId === selectedFile.fileId);
263-
this.selectedFiles[fileIndex].progress = 101; // means API call was successful
264+
if (this.selectedFiles[fileIndex]) {
265+
this.selectedFiles[fileIndex].progress = 101; // means API call was successful
266+
}
264267
} else {
265268
this.removeFile(selectedFile);
266269
this.alertStore.setFailureAlert("An error occurred during file upload");

src/ECER.Clients.RegistryPortal/ecer.clients.registryportal.client/src/components/ManageProfessionalDevelopmentList.vue

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@
6565

6666
<script lang="ts">
6767
import { defineComponent } from "vue";
68-
import { useRoute, useRouter } from "vue-router";
68+
import { useRouter } from "vue-router";
6969
import { useDisplay } from "vuetify";
7070
7171
import { getApplicationStatus } from "@/api/application";
@@ -88,12 +88,11 @@ export default defineComponent({
8888
required: true,
8989
},
9090
},
91-
setup: async () => {
91+
setup: async (props) => {
9292
const { smAndUp } = useDisplay();
9393
const router = useRouter();
94-
const route = useRoute();
9594
const certificationStore = useCertificationStore();
96-
const applicationStatus = (await getApplicationStatus(route.params.applicationId.toString()))?.data;
95+
const applicationStatus = (await getApplicationStatus(props.applicationId))?.data;
9796
9897
return {
9998
applicationStatus,

src/ECER.Clients.RegistryPortal/ecer.clients.registryportal.client/src/components/ManageWorkExperienceReferenceList.vue

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@
3131
() =>
3232
router.push({
3333
name: 'viewWorkExperienceReference',
34-
params: { applicationId: route.params.applicationId, referenceId: reference.id?.toString() },
34+
params: { applicationId: applicationId, referenceId: reference.id?.toString() },
3535
})
3636
"
3737
/>
@@ -85,7 +85,7 @@
8585

8686
<script lang="ts">
8787
import { defineComponent } from "vue";
88-
import { useRoute, useRouter } from "vue-router";
88+
import { useRouter } from "vue-router";
8989
import { useDisplay } from "vuetify";
9090
9191
import { getApplicationStatus } from "@/api/application";
@@ -109,19 +109,17 @@ export default defineComponent({
109109
required: true,
110110
},
111111
},
112-
setup: async () => {
112+
setup: async (props) => {
113113
const { smAndUp } = useDisplay();
114114
const router = useRouter();
115-
const route = useRoute();
116115
const certificationStore = useCertificationStore();
117-
const applicationStatus = (await getApplicationStatus(route.params.applicationId.toString()))?.data;
116+
const applicationStatus = (await getApplicationStatus(props.applicationId))?.data;
118117
119118
return {
120119
applicationStatus,
121120
smAndUp,
122121
certificationStore,
123122
router,
124-
route,
125123
};
126124
},
127125
computed: {

0 commit comments

Comments
 (0)