From 37f1f4632a1991d2519d97e19531e9eb68a4575a Mon Sep 17 00:00:00 2001 From: Stefan Topfstedt Date: Thu, 7 Nov 2024 15:08:20 -0800 Subject: [PATCH 01/18] install papaparse as dependency in common. --- packages/ilios-common/addon/utils/create-download-file.js | 0 packages/ilios-common/app/utils/create-download-file.js | 0 packages/ilios-common/package.json | 1 + pnpm-lock.yaml | 3 +++ 4 files changed, 4 insertions(+) create mode 100644 packages/ilios-common/addon/utils/create-download-file.js create mode 100644 packages/ilios-common/app/utils/create-download-file.js diff --git a/packages/ilios-common/addon/utils/create-download-file.js b/packages/ilios-common/addon/utils/create-download-file.js new file mode 100644 index 0000000000..e69de29bb2 diff --git a/packages/ilios-common/app/utils/create-download-file.js b/packages/ilios-common/app/utils/create-download-file.js new file mode 100644 index 0000000000..e69de29bb2 diff --git a/packages/ilios-common/package.json b/packages/ilios-common/package.json index 213bc709f7..e23c51722e 100644 --- a/packages/ilios-common/package.json +++ b/packages/ilios-common/package.json @@ -63,6 +63,7 @@ "luxon": ">= 3.5.0", "mockdate": ">= 3.0.0", "normalize.css": "^8.0.1", + "papaparse": "^5.4.1", "query-string": ">= 9.1.0", "scroll-into-view": ">= 1.16.0", "striptags": ">= 3.2.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 26c9df1019..7de194c226 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -492,6 +492,9 @@ importers: normalize.css: specifier: ^8.0.1 version: 8.0.1 + papaparse: + specifier: ^5.4.1 + version: 5.4.1 query-string: specifier: '>= 9.1.0' version: 9.1.1 From ba310f5dd849c6a21a076feb0a43df39d845c6e5 Mon Sep 17 00:00:00 2001 From: Stefan Topfstedt Date: Thu, 7 Nov 2024 15:19:04 -0800 Subject: [PATCH 02/18] move create-download-file from frontend into ilios-common so it can be used there, too. --- .../app/components/reports/subject-header.js | 2 +- .../frontend/app/utils/create-download-file.js | 14 -------------- .../addon/utils/create-download-file.js | 14 ++++++++++++++ .../ilios-common/app/utils/create-download-file.js | 1 + 4 files changed, 16 insertions(+), 15 deletions(-) delete mode 100644 packages/frontend/app/utils/create-download-file.js diff --git a/packages/frontend/app/components/reports/subject-header.js b/packages/frontend/app/components/reports/subject-header.js index 16dd02d76c..56929ad60c 100644 --- a/packages/frontend/app/components/reports/subject-header.js +++ b/packages/frontend/app/components/reports/subject-header.js @@ -4,7 +4,7 @@ import { action } from '@ember/object'; import { service } from '@ember/service'; import PapaParse from 'papaparse'; import { dropTask, timeout, waitForProperty } from 'ember-concurrency'; -import createDownloadFile from 'frontend/utils/create-download-file'; +import createDownloadFile from 'ilios-common/utils/create-download-file'; import { validatable, Length } from 'ilios-common/decorators/validation'; import { TrackedAsyncData } from 'ember-async-data'; diff --git a/packages/frontend/app/utils/create-download-file.js b/packages/frontend/app/utils/create-download-file.js deleted file mode 100644 index 8fa2736c13..0000000000 --- a/packages/frontend/app/utils/create-download-file.js +++ /dev/null @@ -1,14 +0,0 @@ -export default function createDownloadFile(title, content, type) { - const a = document.createElement('a'); - if (URL && 'download' in a) { - //html5 A[download] - const blob = new Blob([content], { type }); - a.href = URL.createObjectURL(blob); - a.setAttribute('download', title); - document.body.appendChild(a); - a.click(); - document.body.removeChild(a); - } else { - location.href = 'data:application/octet-stream,' + encodeURIComponent(content); - } -} diff --git a/packages/ilios-common/addon/utils/create-download-file.js b/packages/ilios-common/addon/utils/create-download-file.js index e69de29bb2..8fa2736c13 100644 --- a/packages/ilios-common/addon/utils/create-download-file.js +++ b/packages/ilios-common/addon/utils/create-download-file.js @@ -0,0 +1,14 @@ +export default function createDownloadFile(title, content, type) { + const a = document.createElement('a'); + if (URL && 'download' in a) { + //html5 A[download] + const blob = new Blob([content], { type }); + a.href = URL.createObjectURL(blob); + a.setAttribute('download', title); + document.body.appendChild(a); + a.click(); + document.body.removeChild(a); + } else { + location.href = 'data:application/octet-stream,' + encodeURIComponent(content); + } +} diff --git a/packages/ilios-common/app/utils/create-download-file.js b/packages/ilios-common/app/utils/create-download-file.js index e69de29bb2..c7bc7687db 100644 --- a/packages/ilios-common/app/utils/create-download-file.js +++ b/packages/ilios-common/app/utils/create-download-file.js @@ -0,0 +1 @@ +export { default } from 'ilios-common/utils/create-download-file'; From e941b1ae9287f6acfe589b668b093f43e1053ab9 Mon Sep 17 00:00:00 2001 From: Stefan Topfstedt Date: Thu, 7 Nov 2024 15:47:28 -0800 Subject: [PATCH 03/18] adds data download feature to course objectives viz. --- .../course/visualize-objectives-graph.hbs | 12 ++++++++- .../course/visualize-objectives-graph.js | 25 ++++++++++++++++++- .../mixins/graph-with-data-table.scss | 4 +++ 3 files changed, 39 insertions(+), 2 deletions(-) diff --git a/packages/ilios-common/addon/components/course/visualize-objectives-graph.hbs b/packages/ilios-common/addon/components/course/visualize-objectives-graph.hbs index 10795f70f8..b62480d64d 100644 --- a/packages/ilios-common/addon/components/course/visualize-objectives-graph.hbs +++ b/packages/ilios-common/addon/components/course/visualize-objectives-graph.hbs @@ -53,6 +53,16 @@ {{/if}} {{#if (and (not @isIcon) this.hasData @showDataTable)}}
+
+ +
@@ -126,4 +136,4 @@ {{else}} {{/if}} - + \ No newline at end of file diff --git a/packages/ilios-common/addon/components/course/visualize-objectives-graph.js b/packages/ilios-common/addon/components/course/visualize-objectives-graph.js index 2136bc8ef5..35957abf82 100644 --- a/packages/ilios-common/addon/components/course/visualize-objectives-graph.js +++ b/packages/ilios-common/addon/components/course/visualize-objectives-graph.js @@ -4,9 +4,11 @@ import { action } from '@ember/object'; import { service } from '@ember/service'; import { htmlSafe } from '@ember/template'; import { filter, map } from 'rsvp'; -import { restartableTask, timeout } from 'ember-concurrency'; +import { dropTask, restartableTask, timeout } from 'ember-concurrency'; import { TrackedAsyncData } from 'ember-async-data'; +import PapaParse from 'papaparse'; import { mapBy, sortBy, uniqueValues } from 'ilios-common/utils/array-helpers'; +import createDownloadFile from 'ilios-common/utils/create-download-file'; export default class CourseVisualizeObjectivesGraph extends Component { @service router; @@ -38,6 +40,7 @@ export default class CourseVisualizeObjectivesGraph extends Component { get hasData() { return this.data.length; } + get sortedAscending() { return this.sortBy.search(/desc/) === -1; } @@ -191,4 +194,24 @@ export default class CourseVisualizeObjectivesGraph extends Component { ); this.tooltipContent = htmlSafe(mapBy(meta.sessionObjectives, 'sessionTitle').sort().join(', ')); }); + + downloadData = dropTask(async () => { + const sessions = await this.args.course.sessions; + const data = await this.getDataObjects(sessions); + const output = data.map((obj) => { + const rhett = {}; + rhett[this.intl.t('general.percentage')] = obj.percentage; + rhett[this.intl.t('general.courseObjective')] = obj.meta.courseObjective.title; + rhett[this.intl.t('general.competencies')] = obj.meta.competencies; + rhett[this.intl.t('general.sessions')] = mapBy( + sortBy(mapBy(obj.meta.sessionObjectives, 'session'), 'title'), + 'title', + ).join(', '); + rhett[this.intl.t('general.minutes')] = obj.data; + return rhett; + }); + const csv = PapaParse.unparse(output); + createDownloadFile('data.csv', csv, 'text/csv'); + await timeout(2000); + }); } diff --git a/packages/ilios-common/app/styles/ilios-common/mixins/graph-with-data-table.scss b/packages/ilios-common/app/styles/ilios-common/mixins/graph-with-data-table.scss index a42d1f9f17..263a68d972 100644 --- a/packages/ilios-common/app/styles/ilios-common/mixins/graph-with-data-table.scss +++ b/packages/ilios-common/app/styles/ilios-common/mixins/graph-with-data-table.scss @@ -10,6 +10,10 @@ grid-column: -1/1; padding-top: 2rem; + .table-actions { + text-align: right; + } + table { @include t.ilios-table-structure; @include t.ilios-table-colors; From bfa8eefdf6571cd6c014dd2f5461f11a06feefe1 Mon Sep 17 00:00:00 2001 From: Stefan Topfstedt Date: Thu, 7 Nov 2024 15:49:34 -0800 Subject: [PATCH 04/18] adds right-hand margin to viz styles. this gives some room to right-aligned components within, such as download buttons. --- .../app/styles/ilios-common/mixins/data-visualization.scss | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/ilios-common/app/styles/ilios-common/mixins/data-visualization.scss b/packages/ilios-common/app/styles/ilios-common/mixins/data-visualization.scss index f3150802d2..6a7fef6e93 100644 --- a/packages/ilios-common/app/styles/ilios-common/mixins/data-visualization.scss +++ b/packages/ilios-common/app/styles/ilios-common/mixins/data-visualization.scss @@ -34,5 +34,6 @@ grid-template-columns: 1fr; grid-gap: 10px; margin-left: 0.8rem; + margin-right: 0.8rem; } } From d34b8153b600208d22923349962b54e90c30ad12 Mon Sep 17 00:00:00 2001 From: Stefan Topfstedt Date: Thu, 7 Nov 2024 16:22:50 -0800 Subject: [PATCH 05/18] adds data download feature to course session types viz. --- .../course/visualize-session-types-graph.hbs | 12 ++++++++++- .../course/visualize-session-types-graph.js | 20 +++++++++++++++++-- 2 files changed, 29 insertions(+), 3 deletions(-) diff --git a/packages/ilios-common/addon/components/course/visualize-session-types-graph.hbs b/packages/ilios-common/addon/components/course/visualize-session-types-graph.hbs index 5b23278aaf..b47d7f4a94 100644 --- a/packages/ilios-common/addon/components/course/visualize-session-types-graph.hbs +++ b/packages/ilios-common/addon/components/course/visualize-session-types-graph.hbs @@ -27,6 +27,16 @@ {{/if}} {{#if (and (not @isIcon) this.hasData @showDataTable)}}
+
+ +
@@ -83,4 +93,4 @@ {{else}} {{/if}} - + \ No newline at end of file diff --git a/packages/ilios-common/addon/components/course/visualize-session-types-graph.js b/packages/ilios-common/addon/components/course/visualize-session-types-graph.js index aaa30cc606..6da5b9318e 100644 --- a/packages/ilios-common/addon/components/course/visualize-session-types-graph.js +++ b/packages/ilios-common/addon/components/course/visualize-session-types-graph.js @@ -1,13 +1,15 @@ import Component from '@glimmer/component'; import { htmlSafe } from '@ember/template'; -import { restartableTask, timeout } from 'ember-concurrency'; +import { dropTask, restartableTask, timeout } from 'ember-concurrency'; import { service } from '@ember/service'; import { cached, tracked } from '@glimmer/tracking'; import { action } from '@ember/object'; -import { cleanQuery } from 'ilios-common/utils/query-utils'; import { map } from 'rsvp'; import { TrackedAsyncData } from 'ember-async-data'; +import PapaParse from 'papaparse'; +import { cleanQuery } from 'ilios-common/utils/query-utils'; import { findById, mapBy, sortBy, uniqueValues } from 'ilios-common/utils/array-helpers'; +import createDownloadFile from 'ilios-common/utils/create-download-file'; export default class CourseVisualizeSessionTypesGraph extends Component { @service router; @@ -156,4 +158,18 @@ export default class CourseVisualizeSessionTypesGraph extends Component { obj.meta.sessionType.id, ); } + + downloadData = dropTask(async () => { + const data = await this.getData(this.args.course); + const output = data.map((obj) => { + const rhett = {}; + rhett[this.intl.t('general.sessionType')] = obj.meta.sessionType.title; + rhett[this.intl.t('general.sessions')] = mapBy(obj.meta.sessions, 'title').sort().join(', '); + rhett[this.intl.t('general.minutes')] = obj.data; + return rhett; + }); + const csv = PapaParse.unparse(output); + createDownloadFile('data.csv', csv, 'text/csv'); + await timeout(2000); + }); } From f37de91db2329b3de10c3a6680cd477de277fe9d Mon Sep 17 00:00:00 2001 From: Stefan Topfstedt Date: Fri, 8 Nov 2024 08:52:06 -0800 Subject: [PATCH 06/18] rm unnecessary delays in download task. --- .../addon/components/course/visualize-objectives-graph.js | 1 - .../addon/components/course/visualize-session-types-graph.js | 1 - 2 files changed, 2 deletions(-) diff --git a/packages/ilios-common/addon/components/course/visualize-objectives-graph.js b/packages/ilios-common/addon/components/course/visualize-objectives-graph.js index 35957abf82..693d13eb9b 100644 --- a/packages/ilios-common/addon/components/course/visualize-objectives-graph.js +++ b/packages/ilios-common/addon/components/course/visualize-objectives-graph.js @@ -212,6 +212,5 @@ export default class CourseVisualizeObjectivesGraph extends Component { }); const csv = PapaParse.unparse(output); createDownloadFile('data.csv', csv, 'text/csv'); - await timeout(2000); }); } diff --git a/packages/ilios-common/addon/components/course/visualize-session-types-graph.js b/packages/ilios-common/addon/components/course/visualize-session-types-graph.js index 6da5b9318e..2e75013b52 100644 --- a/packages/ilios-common/addon/components/course/visualize-session-types-graph.js +++ b/packages/ilios-common/addon/components/course/visualize-session-types-graph.js @@ -170,6 +170,5 @@ export default class CourseVisualizeSessionTypesGraph extends Component { }); const csv = PapaParse.unparse(output); createDownloadFile('data.csv', csv, 'text/csv'); - await timeout(2000); }); } From 1acfb6d1b8e7c18ccbc027052e0bca6b1dda7932 Mon Sep 17 00:00:00 2001 From: Stefan Topfstedt Date: Fri, 8 Nov 2024 09:18:38 -0800 Subject: [PATCH 07/18] create better files names. --- .../addon/components/course/visualize-objectives-graph.js | 2 +- .../addon/components/course/visualize-session-types-graph.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/ilios-common/addon/components/course/visualize-objectives-graph.js b/packages/ilios-common/addon/components/course/visualize-objectives-graph.js index 693d13eb9b..8a7b6d7690 100644 --- a/packages/ilios-common/addon/components/course/visualize-objectives-graph.js +++ b/packages/ilios-common/addon/components/course/visualize-objectives-graph.js @@ -211,6 +211,6 @@ export default class CourseVisualizeObjectivesGraph extends Component { return rhett; }); const csv = PapaParse.unparse(output); - createDownloadFile('data.csv', csv, 'text/csv'); + createDownloadFile(`ilios-course-${this.args.course.id}-objectives.csv`, csv, 'text/csv'); }); } diff --git a/packages/ilios-common/addon/components/course/visualize-session-types-graph.js b/packages/ilios-common/addon/components/course/visualize-session-types-graph.js index 2e75013b52..5d43453270 100644 --- a/packages/ilios-common/addon/components/course/visualize-session-types-graph.js +++ b/packages/ilios-common/addon/components/course/visualize-session-types-graph.js @@ -169,6 +169,6 @@ export default class CourseVisualizeSessionTypesGraph extends Component { return rhett; }); const csv = PapaParse.unparse(output); - createDownloadFile('data.csv', csv, 'text/csv'); + createDownloadFile(`ilios-course-${this.args.course.id}-session-types.csv`, csv, 'text/csv'); }); } From 31a9f789f1125b418cd9a62bf21641e5ae9c39e0 Mon Sep 17 00:00:00 2001 From: Stefan Topfstedt Date: Fri, 8 Nov 2024 09:40:17 -0800 Subject: [PATCH 08/18] adds data download feature to course/session-type vocab-terms viz. --- .../course/visualize-session-type-graph.hbs | 12 +++++++++- .../course/visualize-session-type-graph.js | 24 +++++++++++++++++-- 2 files changed, 33 insertions(+), 3 deletions(-) diff --git a/packages/ilios-common/addon/components/course/visualize-session-type-graph.hbs b/packages/ilios-common/addon/components/course/visualize-session-type-graph.hbs index 5b1610c25a..3a6b81e0d7 100644 --- a/packages/ilios-common/addon/components/course/visualize-session-type-graph.hbs +++ b/packages/ilios-common/addon/components/course/visualize-session-type-graph.hbs @@ -26,6 +26,16 @@ {{/if}} {{#if (and (not @isIcon) this.hasData @showDataTable)}}
+
+ +
@@ -78,4 +88,4 @@ {{else}} {{/if}} - + \ No newline at end of file diff --git a/packages/ilios-common/addon/components/course/visualize-session-type-graph.js b/packages/ilios-common/addon/components/course/visualize-session-type-graph.js index 5d952ef73c..69c7d132c8 100644 --- a/packages/ilios-common/addon/components/course/visualize-session-type-graph.js +++ b/packages/ilios-common/addon/components/course/visualize-session-type-graph.js @@ -2,12 +2,14 @@ import Component from '@glimmer/component'; import { map } from 'rsvp'; import { isEmpty } from '@ember/utils'; import { htmlSafe } from '@ember/template'; -import { restartableTask, timeout } from 'ember-concurrency'; +import { dropTask, restartableTask, timeout } from 'ember-concurrency'; import { service } from '@ember/service'; import { cached, tracked } from '@glimmer/tracking'; import { TrackedAsyncData } from 'ember-async-data'; -import { findById, mapBy, sortBy } from 'ilios-common/utils/array-helpers'; import { action } from '@ember/object'; +import PapaParse from 'papaparse'; +import createDownloadFile from 'ilios-common/utils/create-download-file'; +import { findById, mapBy, sortBy } from 'ilios-common/utils/array-helpers'; export default class CourseVisualizeSessionTypeGraph extends Component { @service router; @@ -149,4 +151,22 @@ export default class CourseVisualizeSessionTypeGraph extends Component { this.tooltipTitle = title; this.tooltipContent = content; }); + + downloadData = dropTask(async () => { + const data = await this.getDataObjects(this.args.course, this.args.sessionType); + const output = data.map((obj) => { + const rhett = {}; + rhett[`${this.intl.t('general.vocabulary')} - ${this.intl.t('general.term')}`] = + `${obj.meta.vocabulary.title} - ${obj.meta.term.title}`; + rhett[this.intl.t('general.sessions')] = mapBy(obj.meta.sessions, 'title').sort().join(', '); + rhett[this.intl.t('general.minutes')] = obj.data; + return rhett; + }); + const csv = PapaParse.unparse(output); + createDownloadFile( + `ilios-course-${this.args.course.id}-session-type-${this.args.sessionType.id}-vocabulary-terms.csv`, + csv, + 'text/csv', + ); + }); } From c836fc369c672230f49f77db58cdb1760ed70bad Mon Sep 17 00:00:00 2001 From: Stefan Topfstedt Date: Fri, 8 Nov 2024 09:59:59 -0800 Subject: [PATCH 09/18] adds data download feature to course vocabularies viz. --- .../course/visualize-vocabularies-graph.hbs | 12 +++++++++++- .../course/visualize-vocabularies-graph.js | 18 ++++++++++++++++-- 2 files changed, 27 insertions(+), 3 deletions(-) diff --git a/packages/ilios-common/addon/components/course/visualize-vocabularies-graph.hbs b/packages/ilios-common/addon/components/course/visualize-vocabularies-graph.hbs index 166414ed68..d58d9a001f 100644 --- a/packages/ilios-common/addon/components/course/visualize-vocabularies-graph.hbs +++ b/packages/ilios-common/addon/components/course/visualize-vocabularies-graph.hbs @@ -27,6 +27,16 @@ {{/if}} {{#if (and (not @isIcon) this.hasData @showDataTable)}}
+
+ +
@@ -83,4 +93,4 @@ {{else}} {{/if}} - + \ No newline at end of file diff --git a/packages/ilios-common/addon/components/course/visualize-vocabularies-graph.js b/packages/ilios-common/addon/components/course/visualize-vocabularies-graph.js index 677f69ffdc..e84cb3fb28 100644 --- a/packages/ilios-common/addon/components/course/visualize-vocabularies-graph.js +++ b/packages/ilios-common/addon/components/course/visualize-vocabularies-graph.js @@ -1,11 +1,13 @@ import Component from '@glimmer/component'; import { all, map } from 'rsvp'; import { htmlSafe } from '@ember/template'; -import { restartableTask, timeout } from 'ember-concurrency'; +import { dropTask, restartableTask, timeout } from 'ember-concurrency'; import { service } from '@ember/service'; import { cached, tracked } from '@glimmer/tracking'; import { action } from '@ember/object'; import { TrackedAsyncData } from 'ember-async-data'; +import PapaParse from 'papaparse'; +import createDownloadFile from 'ilios-common/utils/create-download-file'; import { findById, mapBy, sortBy, uniqueById } from 'ilios-common/utils/array-helpers'; export default class CourseVisualizeVocabulariesGraph extends Component { @@ -44,7 +46,6 @@ export default class CourseVisualizeVocabulariesGraph extends Component { rhett.vocabulary = obj.meta.vocabulary; rhett.vocabularyTitle = obj.meta.vocabulary.title; rhett.sessionTitles = mapBy(rhett.sessions, 'title').join(', '); - rhett.sessionTitles = mapBy(rhett.sessions, 'title').join(', '); return rhett; }); } @@ -150,4 +151,17 @@ export default class CourseVisualizeVocabulariesGraph extends Component { obj.meta.vocabulary.id, ); } + + downloadData = dropTask(async () => { + const data = await this.getDataObjects(this.args.course); + const output = data.map((obj) => { + const rhett = {}; + rhett[`${this.intl.t('general.vocabulary')}`] = obj.meta.vocabulary.title; + rhett[this.intl.t('general.sessions')] = mapBy(obj.meta.sessions, 'title').sort().join(', '); + rhett[this.intl.t('general.minutes')] = obj.data; + return rhett; + }); + const csv = PapaParse.unparse(output); + createDownloadFile(`ilios-course-${this.args.course.id}-vocabularies.csv`, csv, 'text/csv'); + }); } From 103b5943161aa6dddd3200627fc76eb2aa951845 Mon Sep 17 00:00:00 2001 From: Stefan Topfstedt Date: Fri, 8 Nov 2024 10:12:00 -0800 Subject: [PATCH 10/18] adds data download feature to course vocabulary terms viz. --- .../course/visualize-vocabulary-graph.hbs | 12 ++++++++++- .../course/visualize-vocabulary-graph.js | 21 ++++++++++++++++++- 2 files changed, 31 insertions(+), 2 deletions(-) diff --git a/packages/ilios-common/addon/components/course/visualize-vocabulary-graph.hbs b/packages/ilios-common/addon/components/course/visualize-vocabulary-graph.hbs index 828daf18cd..f10ea7d568 100644 --- a/packages/ilios-common/addon/components/course/visualize-vocabulary-graph.hbs +++ b/packages/ilios-common/addon/components/course/visualize-vocabulary-graph.hbs @@ -27,6 +27,16 @@ {{/if}} {{#if (and (not @isIcon) this.hasData @showDataTable)}}
+
+ +
@@ -83,4 +93,4 @@ {{else}} {{/if}} - + \ No newline at end of file diff --git a/packages/ilios-common/addon/components/course/visualize-vocabulary-graph.js b/packages/ilios-common/addon/components/course/visualize-vocabulary-graph.js index 68719c65d4..e9e42bfc0d 100644 --- a/packages/ilios-common/addon/components/course/visualize-vocabulary-graph.js +++ b/packages/ilios-common/addon/components/course/visualize-vocabulary-graph.js @@ -1,11 +1,13 @@ import Component from '@glimmer/component'; import { filter, map } from 'rsvp'; import { htmlSafe } from '@ember/template'; -import { restartableTask, timeout } from 'ember-concurrency'; +import { dropTask, restartableTask, timeout } from 'ember-concurrency'; import { service } from '@ember/service'; import { cached, tracked } from '@glimmer/tracking'; import { action } from '@ember/object'; import { TrackedAsyncData } from 'ember-async-data'; +import PapaParse from 'papaparse'; +import createDownloadFile from 'ilios-common/utils/create-download-file'; import { findById, mapBy, sortBy } from 'ilios-common/utils/array-helpers'; export default class CourseVisualizeVocabularyGraph extends Component { @@ -148,4 +150,21 @@ export default class CourseVisualizeVocabularyGraph extends Component { } this.router.transitionTo('course-visualize-term', this.args.course.id, obj.meta.term.id); } + + downloadData = dropTask(async () => { + const data = await this.getDataObjects(this.args.course, this.args.vocabulary.id); + const output = data.map((obj) => { + const rhett = {}; + rhett[`${this.intl.t('general.term')}`] = obj.meta.term.title; + rhett[this.intl.t('general.sessions')] = mapBy(obj.meta.sessions, 'title').sort().join(', '); + rhett[this.intl.t('general.minutes')] = obj.data; + return rhett; + }); + const csv = PapaParse.unparse(output); + createDownloadFile( + `ilios-course-${this.args.course.id}-vocabulary-${this.args.vocabulary.id}`, + csv, + 'text/csv', + ); + }); } From 3cd34cc579f571d0080edc1391feb79ff4427d92 Mon Sep 17 00:00:00 2001 From: Stefan Topfstedt Date: Fri, 8 Nov 2024 10:39:00 -0800 Subject: [PATCH 11/18] adds data download feature to course/vocabulary-term session types viz. --- .../course/visualize-term-graph.hbs | 12 +++++++++- .../components/course/visualize-term-graph.js | 23 +++++++++++++++++-- 2 files changed, 32 insertions(+), 3 deletions(-) diff --git a/packages/ilios-common/addon/components/course/visualize-term-graph.hbs b/packages/ilios-common/addon/components/course/visualize-term-graph.hbs index 51fd37cd4c..437164ea2e 100644 --- a/packages/ilios-common/addon/components/course/visualize-term-graph.hbs +++ b/packages/ilios-common/addon/components/course/visualize-term-graph.hbs @@ -26,6 +26,16 @@ {{/if}} {{#if (and (not @isIcon) this.hasData @showDataTable)}}
+
+ +
@@ -78,4 +88,4 @@ {{else}} {{/if}} - + \ No newline at end of file diff --git a/packages/ilios-common/addon/components/course/visualize-term-graph.js b/packages/ilios-common/addon/components/course/visualize-term-graph.js index 9e63e4169f..d245d17660 100644 --- a/packages/ilios-common/addon/components/course/visualize-term-graph.js +++ b/packages/ilios-common/addon/components/course/visualize-term-graph.js @@ -1,12 +1,14 @@ import Component from '@glimmer/component'; import { map } from 'rsvp'; import { htmlSafe } from '@ember/template'; -import { restartableTask, timeout } from 'ember-concurrency'; +import { dropTask, restartableTask, timeout } from 'ember-concurrency'; import { service } from '@ember/service'; import { cached, tracked } from '@glimmer/tracking'; import { TrackedAsyncData } from 'ember-async-data'; -import { findById, mapBy, sortBy } from 'ilios-common/utils/array-helpers'; import { action } from '@ember/object'; +import PapaParse from 'papaparse'; +import createDownloadFile from 'ilios-common/utils/create-download-file'; +import { findById, mapBy, sortBy } from 'ilios-common/utils/array-helpers'; export default class CourseVisualizeTermGraph extends Component { @service router; @@ -121,4 +123,21 @@ export default class CourseVisualizeTermGraph extends Component { ); this.tooltipContent = htmlSafe(mapBy(meta.sessions, 'title').sort().join(', ')); }); + + downloadData = dropTask(async () => { + const data = await this.getDataObjects(this.args.course, this.args.term); + const output = data.map((obj) => { + const rhett = {}; + rhett[`${this.intl.t('general.sessionType')}`] = obj.meta.sessionType.title; + rhett[this.intl.t('general.sessions')] = mapBy(obj.meta.sessions, 'title').sort().join(', '); + rhett[this.intl.t('general.minutes')] = obj.data; + return rhett; + }); + const csv = PapaParse.unparse(output); + createDownloadFile( + `ilios-course-${this.args.course.id}-vocabulary-term-${this.args.term.id}-session-types`, + csv, + 'text/csv', + ); + }); } From 08c90ac4b6b71809b49e5110b7d92a1c8f058c99 Mon Sep 17 00:00:00 2001 From: Stefan Topfstedt Date: Fri, 8 Nov 2024 11:03:24 -0800 Subject: [PATCH 12/18] adds data download feature to course instructors viz. --- .../course/visualize-instructors-graph.hbs | 12 +++++++++++- .../course/visualize-instructors-graph.js | 17 ++++++++++++++++- 2 files changed, 27 insertions(+), 2 deletions(-) diff --git a/packages/ilios-common/addon/components/course/visualize-instructors-graph.hbs b/packages/ilios-common/addon/components/course/visualize-instructors-graph.hbs index c7ea34878a..5cd8f7c389 100644 --- a/packages/ilios-common/addon/components/course/visualize-instructors-graph.hbs +++ b/packages/ilios-common/addon/components/course/visualize-instructors-graph.hbs @@ -27,6 +27,16 @@ {{/if}} {{#if (and (not @isIcon) this.hasData @showDataTable)}}
+
+ +
@@ -83,4 +93,4 @@ {{else}} {{/if}} - + \ No newline at end of file diff --git a/packages/ilios-common/addon/components/course/visualize-instructors-graph.js b/packages/ilios-common/addon/components/course/visualize-instructors-graph.js index e85ef88966..85fde461b9 100644 --- a/packages/ilios-common/addon/components/course/visualize-instructors-graph.js +++ b/packages/ilios-common/addon/components/course/visualize-instructors-graph.js @@ -1,13 +1,15 @@ import Component from '@glimmer/component'; import { isEmpty } from '@ember/utils'; import { htmlSafe } from '@ember/template'; -import { restartableTask, timeout } from 'ember-concurrency'; +import { dropTask, restartableTask, timeout } from 'ember-concurrency'; import { map } from 'rsvp'; import { service } from '@ember/service'; import { cached, tracked } from '@glimmer/tracking'; import { action } from '@ember/object'; import { cleanQuery } from 'ilios-common/utils/query-utils'; import { TrackedAsyncData } from 'ember-async-data'; +import PapaParse from 'papaparse'; +import createDownloadFile from 'ilios-common/utils/create-download-file'; import { findById, mapBy, sortBy, uniqueValues } from 'ilios-common/utils/array-helpers'; export default class CourseVisualizeInstructorsGraph extends Component { @@ -155,4 +157,17 @@ export default class CourseVisualizeInstructorsGraph extends Component { this.router.transitionTo('course-visualize-instructor', this.args.course.id, obj.meta.user.id); } + + downloadData = dropTask(async () => { + const data = await this.getData(this.args.course); + const output = data.map((obj) => { + const rhett = {}; + rhett[`${this.intl.t('general.instructor')}`] = obj.meta.user.fullName; + rhett[this.intl.t('general.sessions')] = mapBy(obj.meta.sessions, 'title').sort().join(', '); + rhett[this.intl.t('general.minutes')] = obj.data; + return rhett; + }); + const csv = PapaParse.unparse(output); + createDownloadFile(`ilios-course-${this.args.course.id}-instructors.csv`, csv, 'text/csv'); + }); } From edc3819852753f7e3dbee5eddc79cdc2eff137fe Mon Sep 17 00:00:00 2001 From: Stefan Topfstedt Date: Fri, 8 Nov 2024 11:20:20 -0800 Subject: [PATCH 13/18] ads data download feature to course/instructor session types viz. --- ...isualize-instructor-session-type-graph.hbs | 12 +++++++++- ...visualize-instructor-session-type-graph.js | 23 +++++++++++++++++-- 2 files changed, 32 insertions(+), 3 deletions(-) diff --git a/packages/ilios-common/addon/components/course/visualize-instructor-session-type-graph.hbs b/packages/ilios-common/addon/components/course/visualize-instructor-session-type-graph.hbs index ab8c132d82..2ec5355603 100644 --- a/packages/ilios-common/addon/components/course/visualize-instructor-session-type-graph.hbs +++ b/packages/ilios-common/addon/components/course/visualize-instructor-session-type-graph.hbs @@ -26,6 +26,16 @@ {{/if}} {{#if (and (not @isIcon) this.hasData @showDataTable)}}
+
+ +
@@ -78,4 +88,4 @@ {{else}} {{/if}} - + \ No newline at end of file diff --git a/packages/ilios-common/addon/components/course/visualize-instructor-session-type-graph.js b/packages/ilios-common/addon/components/course/visualize-instructor-session-type-graph.js index 17098949a4..78ac1743a9 100644 --- a/packages/ilios-common/addon/components/course/visualize-instructor-session-type-graph.js +++ b/packages/ilios-common/addon/components/course/visualize-instructor-session-type-graph.js @@ -1,12 +1,14 @@ import Component from '@glimmer/component'; import { filter, map } from 'rsvp'; import { htmlSafe } from '@ember/template'; -import { restartableTask, timeout } from 'ember-concurrency'; +import { dropTask, restartableTask, timeout } from 'ember-concurrency'; import { service } from '@ember/service'; import { cached, tracked } from '@glimmer/tracking'; import { TrackedAsyncData } from 'ember-async-data'; -import { findById, mapBy, sortBy, uniqueValues } from 'ilios-common/utils/array-helpers'; import { action } from '@ember/object'; +import PapaParse from 'papaparse'; +import createDownloadFile from 'ilios-common/utils/create-download-file'; +import { findById, mapBy, sortBy, uniqueValues } from 'ilios-common/utils/array-helpers'; export default class CourseVisualizeInstructorSessionTypeGraph extends Component { @service router; @@ -135,4 +137,21 @@ export default class CourseVisualizeInstructorSessionTypeGraph extends Component ); this.tooltipContent = htmlSafe(uniqueValues(mapBy(meta.sessions, 'title')).sort().join(', ')); }); + + downloadData = dropTask(async () => { + const data = await this.getData(this.args.course, this.args.user); + const output = data.map((obj) => { + const rhett = {}; + rhett[`${this.intl.t('general.sessionType')}`] = obj.meta.sessionType.title; + rhett[this.intl.t('general.sessions')] = mapBy(obj.meta.sessions, 'title').sort().join(', '); + rhett[this.intl.t('general.minutes')] = obj.data; + return rhett; + }); + const csv = PapaParse.unparse(output); + createDownloadFile( + `ilios-course-${this.args.course.id}-instructor-${this.args.user.id}-session-types.csv`, + csv, + 'text/csv', + ); + }); } From 7a5d7507f5c19bc50d284eccd4f36719869d054c Mon Sep 17 00:00:00 2001 From: Stefan Topfstedt Date: Fri, 8 Nov 2024 11:22:00 -0800 Subject: [PATCH 14/18] ads data download feature to course/instructor vocab terms viz. --- .../visualize-instructor-term-graph.hbs | 12 +++++++++- .../course/visualize-instructor-term-graph.js | 23 +++++++++++++++++-- 2 files changed, 32 insertions(+), 3 deletions(-) diff --git a/packages/ilios-common/addon/components/course/visualize-instructor-term-graph.hbs b/packages/ilios-common/addon/components/course/visualize-instructor-term-graph.hbs index b9bad31545..4e542b8aa5 100644 --- a/packages/ilios-common/addon/components/course/visualize-instructor-term-graph.hbs +++ b/packages/ilios-common/addon/components/course/visualize-instructor-term-graph.hbs @@ -26,6 +26,16 @@ {{/if}} {{#if (and (not @isIcon) this.hasData @showDataTable)}}
+
+ +
@@ -78,4 +88,4 @@ {{else}} {{/if}} - + \ No newline at end of file diff --git a/packages/ilios-common/addon/components/course/visualize-instructor-term-graph.js b/packages/ilios-common/addon/components/course/visualize-instructor-term-graph.js index 7bf9e2486f..0571bd08ac 100644 --- a/packages/ilios-common/addon/components/course/visualize-instructor-term-graph.js +++ b/packages/ilios-common/addon/components/course/visualize-instructor-term-graph.js @@ -2,12 +2,14 @@ import Component from '@glimmer/component'; import { filter, map } from 'rsvp'; import { isEmpty } from '@ember/utils'; import { htmlSafe } from '@ember/template'; -import { restartableTask, timeout } from 'ember-concurrency'; +import { dropTask, restartableTask, timeout } from 'ember-concurrency'; import { service } from '@ember/service'; import { cached, tracked } from '@glimmer/tracking'; import { TrackedAsyncData } from 'ember-async-data'; -import { findById, mapBy, sortBy } from 'ilios-common/utils/array-helpers'; import { action } from '@ember/object'; +import PapaParse from 'papaparse'; +import createDownloadFile from 'ilios-common/utils/create-download-file'; +import { findById, mapBy, sortBy } from 'ilios-common/utils/array-helpers'; export default class CourseVisualizeInstructorTermGraph extends Component { @service router; @@ -156,4 +158,21 @@ export default class CourseVisualizeInstructorTermGraph extends Component { ); this.tooltipContent = htmlSafe(mapBy(meta.sessions, 'title').sort().join(', ')); }); + + downloadData = dropTask(async () => { + const data = await this.getData(this.args.course, this.args.user); + const output = data.map((obj) => { + const rhett = {}; + rhett[`${this.intl.t('general.term')}`] = obj.meta.term.title; + rhett[this.intl.t('general.sessions')] = mapBy(obj.meta.sessions, 'title').sort().join(', '); + rhett[this.intl.t('general.minutes')] = obj.data; + return rhett; + }); + const csv = PapaParse.unparse(output); + createDownloadFile( + `ilios-course-${this.args.course.id}-instructor-${this.args.user.id}-vocabulary-terms.csv`, + csv, + 'text/csv', + ); + }); } From 87325ea1d75ddf805f4d85939064574f7f0a72cc Mon Sep 17 00:00:00 2001 From: Stefan Topfstedt Date: Mon, 9 Dec 2024 16:18:42 -0800 Subject: [PATCH 15/18] redeclare the papaparse dependency in ilios-common as peer-dependency, then declare it in apps consuming common as dev-dep. --- packages/ilios-common/package.json | 2 +- packages/lti-course-manager/package.json | 1 + packages/test-app/package.json | 1 + pnpm-lock.yaml | 881 ++++------------------- 4 files changed, 163 insertions(+), 722 deletions(-) diff --git a/packages/ilios-common/package.json b/packages/ilios-common/package.json index e23c51722e..1bfe10e952 100644 --- a/packages/ilios-common/package.json +++ b/packages/ilios-common/package.json @@ -63,7 +63,6 @@ "luxon": ">= 3.5.0", "mockdate": ">= 3.0.0", "normalize.css": "^8.0.1", - "papaparse": "^5.4.1", "query-string": ">= 9.1.0", "scroll-into-view": ">= 1.16.0", "striptags": ">= 3.2.0", @@ -89,6 +88,7 @@ "froala-editor": ">= 4.3.1", "luxon": ">= 3.5.0", "mockdate": ">= 3.0.0", + "papaparse": "^5.4.1", "query-string": ">= 9.1.0", "scroll-into-view": ">= 1.16.0", "striptags": ">= 3.2.0", diff --git a/packages/lti-course-manager/package.json b/packages/lti-course-manager/package.json index f1c7ea7c66..e31925363c 100644 --- a/packages/lti-course-manager/package.json +++ b/packages/lti-course-manager/package.json @@ -90,6 +90,7 @@ "qunit": "^2.22.0", "qunit-dom": "^2.0.0", "qunit-theme-ember": "^1.0.0", + "papaparse": "^5.4.1", "sass": "^1.77.8", "stylelint": "^16.3.1", "stylelint-config-recommended-scss": "^14.1.0", diff --git a/packages/test-app/package.json b/packages/test-app/package.json index 6549c66acf..d9abda07a7 100644 --- a/packages/test-app/package.json +++ b/packages/test-app/package.json @@ -81,6 +81,7 @@ "loader.js": "^4.7.0", "luxon": ">= 3.5.0", "miragejs": ">= 0.1.45", + "papaparse": "^5.4.1", "prettier": "^3.3.3", "query-string": ">= 9.1.0", "qunit": "^2.22.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 7de194c226..c7a94c8209 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -20,7 +20,7 @@ importers: devDependencies: '@babel/core': specifier: ^7.25.2 - version: 7.26.0 + version: 7.26.0(supports-color@8.1.1) '@babel/eslint-parser': specifier: ^7.25.1 version: 7.25.9(@babel/core@7.26.0)(eslint@8.57.1) @@ -365,7 +365,7 @@ importers: dependencies: '@babel/core': specifier: ^7.25.2 - version: 7.26.0 + version: 7.26.0(supports-color@8.1.1) '@ember/render-modifiers': specifier: ^2.0.0 version: 2.1.0(@babel/core@7.26.0)(ember-source@5.11.1(@glimmer/component@1.1.2(@babel/core@7.26.0))(rsvp@4.8.5)(webpack@5.97.1)) @@ -660,7 +660,7 @@ importers: devDependencies: '@babel/core': specifier: ^7.25.2 - version: 7.26.0 + version: 7.26.0(supports-color@8.1.1) '@babel/eslint-parser': specifier: ^7.25.1 version: 7.25.9(@babel/core@7.26.0)(eslint@8.57.1) @@ -850,6 +850,9 @@ importers: loader.js: specifier: ^4.7.0 version: 4.7.0 + papaparse: + specifier: ^5.4.1 + version: 5.4.1 prettier: specifier: ^3.3.3 version: 3.4.2 @@ -894,7 +897,7 @@ importers: devDependencies: '@babel/core': specifier: ^7.25.2 - version: 7.26.0 + version: 7.26.0(supports-color@8.1.1) '@babel/eslint-parser': specifier: ^7.25.1 version: 7.25.9(@babel/core@7.26.0)(eslint@8.57.1) @@ -1128,7 +1131,7 @@ importers: devDependencies: '@babel/core': specifier: ^7.25.2 - version: 7.26.0 + version: 7.26.0(supports-color@8.1.1) '@babel/eslint-parser': specifier: ^7.25.1 version: 7.25.9(@babel/core@7.26.0)(eslint@8.57.1) @@ -1309,6 +1312,9 @@ importers: miragejs: specifier: '>= 0.1.45' version: 0.1.48 + papaparse: + specifier: ^5.4.1 + version: 5.4.1 prettier: specifier: ^3.3.3 version: 3.4.2 @@ -10665,33 +10671,13 @@ snapshots: '@babel/compat-data@7.26.3': {} - '@babel/core@7.26.0': - dependencies: - '@ampproject/remapping': 2.3.0 - '@babel/code-frame': 7.26.2 - '@babel/generator': 7.26.3 - '@babel/helper-compilation-targets': 7.25.9 - '@babel/helper-module-transforms': 7.26.0(@babel/core@7.26.0) - '@babel/helpers': 7.26.0 - '@babel/parser': 7.26.3 - '@babel/template': 7.25.9 - '@babel/traverse': 7.26.4(supports-color@8.1.1) - '@babel/types': 7.26.3 - convert-source-map: 2.0.0 - debug: 4.4.0(supports-color@8.1.1) - gensync: 1.0.0-beta.2 - json5: 2.2.3 - semver: 6.3.1 - transitivePeerDependencies: - - supports-color - '@babel/core@7.26.0(supports-color@8.1.1)': dependencies: '@ampproject/remapping': 2.3.0 '@babel/code-frame': 7.26.2 '@babel/generator': 7.26.3 '@babel/helper-compilation-targets': 7.25.9 - '@babel/helper-module-transforms': 7.26.0(@babel/core@7.26.0(supports-color@8.1.1))(supports-color@8.1.1) + '@babel/helper-module-transforms': 7.26.0(@babel/core@7.26.0)(supports-color@8.1.1) '@babel/helpers': 7.26.0 '@babel/parser': 7.26.3 '@babel/template': 7.25.9 @@ -10707,7 +10693,7 @@ snapshots: '@babel/eslint-parser@7.25.9(@babel/core@7.26.0)(eslint@8.57.1)': dependencies: - '@babel/core': 7.26.0 + '@babel/core': 7.26.0(supports-color@8.1.1) '@nicolo-ribaudo/eslint-scope-5-internals': 5.1.1-v1 eslint: 8.57.1 eslint-visitor-keys: 2.1.0 @@ -10733,47 +10719,27 @@ snapshots: lru-cache: 5.1.1 semver: 6.3.1 - '@babel/helper-create-class-features-plugin@7.25.9(@babel/core@7.26.0(supports-color@8.1.1))(supports-color@8.1.1)': + '@babel/helper-create-class-features-plugin@7.25.9(@babel/core@7.26.0)(supports-color@8.1.1)': dependencies: '@babel/core': 7.26.0(supports-color@8.1.1) '@babel/helper-annotate-as-pure': 7.25.9 '@babel/helper-member-expression-to-functions': 7.25.9(supports-color@8.1.1) '@babel/helper-optimise-call-expression': 7.25.9 - '@babel/helper-replace-supers': 7.25.9(@babel/core@7.26.0(supports-color@8.1.1))(supports-color@8.1.1) + '@babel/helper-replace-supers': 7.25.9(@babel/core@7.26.0)(supports-color@8.1.1) '@babel/helper-skip-transparent-expression-wrappers': 7.25.9(supports-color@8.1.1) '@babel/traverse': 7.26.4(supports-color@8.1.1) semver: 6.3.1 transitivePeerDependencies: - supports-color - '@babel/helper-create-class-features-plugin@7.25.9(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-annotate-as-pure': 7.25.9 - '@babel/helper-member-expression-to-functions': 7.25.9(supports-color@8.1.1) - '@babel/helper-optimise-call-expression': 7.25.9 - '@babel/helper-replace-supers': 7.25.9(@babel/core@7.26.0) - '@babel/helper-skip-transparent-expression-wrappers': 7.25.9(supports-color@8.1.1) - '@babel/traverse': 7.26.4(supports-color@8.1.1) - semver: 6.3.1 - transitivePeerDependencies: - - supports-color - - '@babel/helper-create-regexp-features-plugin@7.26.3(@babel/core@7.26.0(supports-color@8.1.1))': - dependencies: - '@babel/core': 7.26.0(supports-color@8.1.1) - '@babel/helper-annotate-as-pure': 7.25.9 - regexpu-core: 6.2.0 - semver: 6.3.1 - '@babel/helper-create-regexp-features-plugin@7.26.3(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.26.0 + '@babel/core': 7.26.0(supports-color@8.1.1) '@babel/helper-annotate-as-pure': 7.25.9 regexpu-core: 6.2.0 semver: 6.3.1 - '@babel/helper-define-polyfill-provider@0.6.3(@babel/core@7.26.0(supports-color@8.1.1))(supports-color@8.1.1)': + '@babel/helper-define-polyfill-provider@0.6.3(@babel/core@7.26.0)(supports-color@8.1.1)': dependencies: '@babel/core': 7.26.0(supports-color@8.1.1) '@babel/helper-compilation-targets': 7.25.9 @@ -10784,17 +10750,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/helper-define-polyfill-provider@0.6.3(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-compilation-targets': 7.25.9 - '@babel/helper-plugin-utils': 7.25.9 - debug: 4.4.0(supports-color@8.1.1) - lodash.debounce: 4.0.8 - resolve: 1.22.8 - transitivePeerDependencies: - - supports-color - '@babel/helper-member-expression-to-functions@7.25.9(supports-color@8.1.1)': dependencies: '@babel/traverse': 7.26.4(supports-color@8.1.1) @@ -10809,7 +10764,7 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/helper-module-transforms@7.26.0(@babel/core@7.26.0(supports-color@8.1.1))(supports-color@8.1.1)': + '@babel/helper-module-transforms@7.26.0(@babel/core@7.26.0)(supports-color@8.1.1)': dependencies: '@babel/core': 7.26.0(supports-color@8.1.1) '@babel/helper-module-imports': 7.25.9(supports-color@8.1.1) @@ -10818,22 +10773,13 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/helper-module-transforms@7.26.0(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-module-imports': 7.25.9(supports-color@8.1.1) - '@babel/helper-validator-identifier': 7.25.9 - '@babel/traverse': 7.26.4(supports-color@8.1.1) - transitivePeerDependencies: - - supports-color - '@babel/helper-optimise-call-expression@7.25.9': dependencies: '@babel/types': 7.26.3 '@babel/helper-plugin-utils@7.25.9': {} - '@babel/helper-remap-async-to-generator@7.25.9(@babel/core@7.26.0(supports-color@8.1.1))(supports-color@8.1.1)': + '@babel/helper-remap-async-to-generator@7.25.9(@babel/core@7.26.0)(supports-color@8.1.1)': dependencies: '@babel/core': 7.26.0(supports-color@8.1.1) '@babel/helper-annotate-as-pure': 7.25.9 @@ -10842,16 +10788,7 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/helper-remap-async-to-generator@7.25.9(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-annotate-as-pure': 7.25.9 - '@babel/helper-wrap-function': 7.25.9(supports-color@8.1.1) - '@babel/traverse': 7.26.4(supports-color@8.1.1) - transitivePeerDependencies: - - supports-color - - '@babel/helper-replace-supers@7.25.9(@babel/core@7.26.0(supports-color@8.1.1))(supports-color@8.1.1)': + '@babel/helper-replace-supers@7.25.9(@babel/core@7.26.0)(supports-color@8.1.1)': dependencies: '@babel/core': 7.26.0(supports-color@8.1.1) '@babel/helper-member-expression-to-functions': 7.25.9(supports-color@8.1.1) @@ -10860,15 +10797,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/helper-replace-supers@7.25.9(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-member-expression-to-functions': 7.25.9(supports-color@8.1.1) - '@babel/helper-optimise-call-expression': 7.25.9 - '@babel/traverse': 7.26.4(supports-color@8.1.1) - transitivePeerDependencies: - - supports-color - '@babel/helper-skip-transparent-expression-wrappers@7.25.9(supports-color@8.1.1)': dependencies: '@babel/traverse': 7.26.4(supports-color@8.1.1) @@ -10899,7 +10827,7 @@ snapshots: dependencies: '@babel/types': 7.26.3 - '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.25.9(@babel/core@7.26.0(supports-color@8.1.1))(supports-color@8.1.1)': + '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.25.9(@babel/core@7.26.0)(supports-color@8.1.1)': dependencies: '@babel/core': 7.26.0(supports-color@8.1.1) '@babel/helper-plugin-utils': 7.25.9 @@ -10907,53 +10835,26 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.25.9(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 - '@babel/traverse': 7.26.4(supports-color@8.1.1) - transitivePeerDependencies: - - supports-color - - '@babel/plugin-bugfix-safari-class-field-initializer-scope@7.25.9(@babel/core@7.26.0(supports-color@8.1.1))': - dependencies: - '@babel/core': 7.26.0(supports-color@8.1.1) - '@babel/helper-plugin-utils': 7.25.9 - '@babel/plugin-bugfix-safari-class-field-initializer-scope@7.25.9(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 - - '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.25.9(@babel/core@7.26.0(supports-color@8.1.1))': dependencies: '@babel/core': 7.26.0(supports-color@8.1.1) '@babel/helper-plugin-utils': 7.25.9 '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.25.9(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 - - '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.25.9(@babel/core@7.26.0(supports-color@8.1.1))(supports-color@8.1.1)': dependencies: '@babel/core': 7.26.0(supports-color@8.1.1) '@babel/helper-plugin-utils': 7.25.9 - '@babel/helper-skip-transparent-expression-wrappers': 7.25.9(supports-color@8.1.1) - '@babel/plugin-transform-optional-chaining': 7.25.9(@babel/core@7.26.0(supports-color@8.1.1))(supports-color@8.1.1) - transitivePeerDependencies: - - supports-color - '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.25.9(@babel/core@7.26.0)': + '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.25.9(@babel/core@7.26.0)(supports-color@8.1.1)': dependencies: - '@babel/core': 7.26.0 + '@babel/core': 7.26.0(supports-color@8.1.1) '@babel/helper-plugin-utils': 7.25.9 '@babel/helper-skip-transparent-expression-wrappers': 7.25.9(supports-color@8.1.1) - '@babel/plugin-transform-optional-chaining': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-optional-chaining': 7.25.9(@babel/core@7.26.0)(supports-color@8.1.1) transitivePeerDependencies: - supports-color - '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.25.9(@babel/core@7.26.0(supports-color@8.1.1))(supports-color@8.1.1)': + '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.25.9(@babel/core@7.26.0)(supports-color@8.1.1)': dependencies: '@babel/core': 7.26.0(supports-color@8.1.1) '@babel/helper-plugin-utils': 7.25.9 @@ -10961,26 +10862,18 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.25.9(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 - '@babel/traverse': 7.26.4(supports-color@8.1.1) - transitivePeerDependencies: - - supports-color - '@babel/plugin-proposal-class-properties@7.18.6(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-create-class-features-plugin': 7.25.9(@babel/core@7.26.0) + '@babel/core': 7.26.0(supports-color@8.1.1) + '@babel/helper-create-class-features-plugin': 7.25.9(@babel/core@7.26.0)(supports-color@8.1.1) '@babel/helper-plugin-utils': 7.25.9 transitivePeerDependencies: - supports-color '@babel/plugin-proposal-decorators@7.25.9(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-create-class-features-plugin': 7.25.9(@babel/core@7.26.0) + '@babel/core': 7.26.0(supports-color@8.1.1) + '@babel/helper-create-class-features-plugin': 7.25.9(@babel/core@7.26.0)(supports-color@8.1.1) '@babel/helper-plugin-utils': 7.25.9 '@babel/plugin-syntax-decorators': 7.25.9(@babel/core@7.26.0) transitivePeerDependencies: @@ -10988,25 +10881,21 @@ snapshots: '@babel/plugin-proposal-private-methods@7.18.6(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-create-class-features-plugin': 7.25.9(@babel/core@7.26.0) + '@babel/core': 7.26.0(supports-color@8.1.1) + '@babel/helper-create-class-features-plugin': 7.25.9(@babel/core@7.26.0)(supports-color@8.1.1) '@babel/helper-plugin-utils': 7.25.9 transitivePeerDependencies: - supports-color - '@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.26.0(supports-color@8.1.1))': - dependencies: - '@babel/core': 7.26.0(supports-color@8.1.1) - '@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.26.0 + '@babel/core': 7.26.0(supports-color@8.1.1) '@babel/plugin-proposal-private-property-in-object@7.21.11(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.26.0 + '@babel/core': 7.26.0(supports-color@8.1.1) '@babel/helper-annotate-as-pure': 7.25.9 - '@babel/helper-create-class-features-plugin': 7.25.9(@babel/core@7.26.0) + '@babel/helper-create-class-features-plugin': 7.25.9(@babel/core@7.26.0)(supports-color@8.1.1) '@babel/helper-plugin-utils': 7.25.9 '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.26.0) transitivePeerDependencies: @@ -11014,281 +10903,153 @@ snapshots: '@babel/plugin-syntax-decorators@7.25.9(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.26.0 + '@babel/core': 7.26.0(supports-color@8.1.1) '@babel/helper-plugin-utils': 7.25.9 '@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 - - '@babel/plugin-syntax-import-assertions@7.26.0(@babel/core@7.26.0(supports-color@8.1.1))': dependencies: '@babel/core': 7.26.0(supports-color@8.1.1) '@babel/helper-plugin-utils': 7.25.9 '@babel/plugin-syntax-import-assertions@7.26.0(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 - - '@babel/plugin-syntax-import-attributes@7.26.0(@babel/core@7.26.0(supports-color@8.1.1))': dependencies: '@babel/core': 7.26.0(supports-color@8.1.1) '@babel/helper-plugin-utils': 7.25.9 '@babel/plugin-syntax-import-attributes@7.26.0(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.26.0 + '@babel/core': 7.26.0(supports-color@8.1.1) '@babel/helper-plugin-utils': 7.25.9 '@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.26.0 + '@babel/core': 7.26.0(supports-color@8.1.1) '@babel/helper-plugin-utils': 7.25.9 '@babel/plugin-syntax-typescript@7.25.9(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 - - '@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.26.0(supports-color@8.1.1))': dependencies: '@babel/core': 7.26.0(supports-color@8.1.1) - '@babel/helper-create-regexp-features-plugin': 7.26.3(@babel/core@7.26.0(supports-color@8.1.1)) '@babel/helper-plugin-utils': 7.25.9 '@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-create-regexp-features-plugin': 7.26.3(@babel/core@7.26.0) - '@babel/helper-plugin-utils': 7.25.9 - - '@babel/plugin-transform-arrow-functions@7.25.9(@babel/core@7.26.0(supports-color@8.1.1))': dependencies: '@babel/core': 7.26.0(supports-color@8.1.1) + '@babel/helper-create-regexp-features-plugin': 7.26.3(@babel/core@7.26.0) '@babel/helper-plugin-utils': 7.25.9 '@babel/plugin-transform-arrow-functions@7.25.9(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 - - '@babel/plugin-transform-async-generator-functions@7.25.9(@babel/core@7.26.0(supports-color@8.1.1))(supports-color@8.1.1)': dependencies: '@babel/core': 7.26.0(supports-color@8.1.1) '@babel/helper-plugin-utils': 7.25.9 - '@babel/helper-remap-async-to-generator': 7.25.9(@babel/core@7.26.0(supports-color@8.1.1))(supports-color@8.1.1) - '@babel/traverse': 7.26.4(supports-color@8.1.1) - transitivePeerDependencies: - - supports-color - '@babel/plugin-transform-async-generator-functions@7.25.9(@babel/core@7.26.0)': + '@babel/plugin-transform-async-generator-functions@7.25.9(@babel/core@7.26.0)(supports-color@8.1.1)': dependencies: - '@babel/core': 7.26.0 + '@babel/core': 7.26.0(supports-color@8.1.1) '@babel/helper-plugin-utils': 7.25.9 - '@babel/helper-remap-async-to-generator': 7.25.9(@babel/core@7.26.0) + '@babel/helper-remap-async-to-generator': 7.25.9(@babel/core@7.26.0)(supports-color@8.1.1) '@babel/traverse': 7.26.4(supports-color@8.1.1) transitivePeerDependencies: - supports-color - '@babel/plugin-transform-async-to-generator@7.25.9(@babel/core@7.26.0(supports-color@8.1.1))(supports-color@8.1.1)': + '@babel/plugin-transform-async-to-generator@7.25.9(@babel/core@7.26.0)(supports-color@8.1.1)': dependencies: '@babel/core': 7.26.0(supports-color@8.1.1) '@babel/helper-module-imports': 7.25.9(supports-color@8.1.1) '@babel/helper-plugin-utils': 7.25.9 - '@babel/helper-remap-async-to-generator': 7.25.9(@babel/core@7.26.0(supports-color@8.1.1))(supports-color@8.1.1) + '@babel/helper-remap-async-to-generator': 7.25.9(@babel/core@7.26.0)(supports-color@8.1.1) transitivePeerDependencies: - supports-color - '@babel/plugin-transform-async-to-generator@7.25.9(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-module-imports': 7.25.9(supports-color@8.1.1) - '@babel/helper-plugin-utils': 7.25.9 - '@babel/helper-remap-async-to-generator': 7.25.9(@babel/core@7.26.0) - transitivePeerDependencies: - - supports-color - - '@babel/plugin-transform-block-scoped-functions@7.25.9(@babel/core@7.26.0(supports-color@8.1.1))': - dependencies: - '@babel/core': 7.26.0(supports-color@8.1.1) - '@babel/helper-plugin-utils': 7.25.9 - '@babel/plugin-transform-block-scoped-functions@7.25.9(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 - - '@babel/plugin-transform-block-scoping@7.25.9(@babel/core@7.26.0(supports-color@8.1.1))': dependencies: '@babel/core': 7.26.0(supports-color@8.1.1) '@babel/helper-plugin-utils': 7.25.9 '@babel/plugin-transform-block-scoping@7.25.9(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 - - '@babel/plugin-transform-class-properties@7.25.9(@babel/core@7.26.0(supports-color@8.1.1))(supports-color@8.1.1)': dependencies: '@babel/core': 7.26.0(supports-color@8.1.1) - '@babel/helper-create-class-features-plugin': 7.25.9(@babel/core@7.26.0(supports-color@8.1.1))(supports-color@8.1.1) '@babel/helper-plugin-utils': 7.25.9 - transitivePeerDependencies: - - supports-color - '@babel/plugin-transform-class-properties@7.25.9(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-create-class-features-plugin': 7.25.9(@babel/core@7.26.0) - '@babel/helper-plugin-utils': 7.25.9 - transitivePeerDependencies: - - supports-color - - '@babel/plugin-transform-class-static-block@7.26.0(@babel/core@7.26.0(supports-color@8.1.1))(supports-color@8.1.1)': + '@babel/plugin-transform-class-properties@7.25.9(@babel/core@7.26.0)(supports-color@8.1.1)': dependencies: '@babel/core': 7.26.0(supports-color@8.1.1) - '@babel/helper-create-class-features-plugin': 7.25.9(@babel/core@7.26.0(supports-color@8.1.1))(supports-color@8.1.1) - '@babel/helper-plugin-utils': 7.25.9 - transitivePeerDependencies: - - supports-color - - '@babel/plugin-transform-class-static-block@7.26.0(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-create-class-features-plugin': 7.25.9(@babel/core@7.26.0) + '@babel/helper-create-class-features-plugin': 7.25.9(@babel/core@7.26.0)(supports-color@8.1.1) '@babel/helper-plugin-utils': 7.25.9 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-classes@7.25.9(@babel/core@7.26.0(supports-color@8.1.1))(supports-color@8.1.1)': + '@babel/plugin-transform-class-static-block@7.26.0(@babel/core@7.26.0)(supports-color@8.1.1)': dependencies: '@babel/core': 7.26.0(supports-color@8.1.1) - '@babel/helper-annotate-as-pure': 7.25.9 - '@babel/helper-compilation-targets': 7.25.9 + '@babel/helper-create-class-features-plugin': 7.25.9(@babel/core@7.26.0)(supports-color@8.1.1) '@babel/helper-plugin-utils': 7.25.9 - '@babel/helper-replace-supers': 7.25.9(@babel/core@7.26.0(supports-color@8.1.1))(supports-color@8.1.1) - '@babel/traverse': 7.26.4(supports-color@8.1.1) - globals: 11.12.0 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-classes@7.25.9(@babel/core@7.26.0)': + '@babel/plugin-transform-classes@7.25.9(@babel/core@7.26.0)(supports-color@8.1.1)': dependencies: - '@babel/core': 7.26.0 + '@babel/core': 7.26.0(supports-color@8.1.1) '@babel/helper-annotate-as-pure': 7.25.9 '@babel/helper-compilation-targets': 7.25.9 '@babel/helper-plugin-utils': 7.25.9 - '@babel/helper-replace-supers': 7.25.9(@babel/core@7.26.0) + '@babel/helper-replace-supers': 7.25.9(@babel/core@7.26.0)(supports-color@8.1.1) '@babel/traverse': 7.26.4(supports-color@8.1.1) globals: 11.12.0 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-computed-properties@7.25.9(@babel/core@7.26.0(supports-color@8.1.1))': - dependencies: - '@babel/core': 7.26.0(supports-color@8.1.1) - '@babel/helper-plugin-utils': 7.25.9 - '@babel/template': 7.25.9 - '@babel/plugin-transform-computed-properties@7.25.9(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 - '@babel/template': 7.25.9 - - '@babel/plugin-transform-destructuring@7.25.9(@babel/core@7.26.0(supports-color@8.1.1))': dependencies: '@babel/core': 7.26.0(supports-color@8.1.1) '@babel/helper-plugin-utils': 7.25.9 + '@babel/template': 7.25.9 '@babel/plugin-transform-destructuring@7.25.9(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 - - '@babel/plugin-transform-dotall-regex@7.25.9(@babel/core@7.26.0(supports-color@8.1.1))': dependencies: '@babel/core': 7.26.0(supports-color@8.1.1) - '@babel/helper-create-regexp-features-plugin': 7.26.3(@babel/core@7.26.0(supports-color@8.1.1)) '@babel/helper-plugin-utils': 7.25.9 '@babel/plugin-transform-dotall-regex@7.25.9(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-create-regexp-features-plugin': 7.26.3(@babel/core@7.26.0) - '@babel/helper-plugin-utils': 7.25.9 - - '@babel/plugin-transform-duplicate-keys@7.25.9(@babel/core@7.26.0(supports-color@8.1.1))': dependencies: '@babel/core': 7.26.0(supports-color@8.1.1) + '@babel/helper-create-regexp-features-plugin': 7.26.3(@babel/core@7.26.0) '@babel/helper-plugin-utils': 7.25.9 '@babel/plugin-transform-duplicate-keys@7.25.9(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 - - '@babel/plugin-transform-duplicate-named-capturing-groups-regex@7.25.9(@babel/core@7.26.0(supports-color@8.1.1))': dependencies: '@babel/core': 7.26.0(supports-color@8.1.1) - '@babel/helper-create-regexp-features-plugin': 7.26.3(@babel/core@7.26.0(supports-color@8.1.1)) '@babel/helper-plugin-utils': 7.25.9 '@babel/plugin-transform-duplicate-named-capturing-groups-regex@7.25.9(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-create-regexp-features-plugin': 7.26.3(@babel/core@7.26.0) - '@babel/helper-plugin-utils': 7.25.9 - - '@babel/plugin-transform-dynamic-import@7.25.9(@babel/core@7.26.0(supports-color@8.1.1))': dependencies: '@babel/core': 7.26.0(supports-color@8.1.1) + '@babel/helper-create-regexp-features-plugin': 7.26.3(@babel/core@7.26.0) '@babel/helper-plugin-utils': 7.25.9 '@babel/plugin-transform-dynamic-import@7.25.9(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 - - '@babel/plugin-transform-exponentiation-operator@7.26.3(@babel/core@7.26.0(supports-color@8.1.1))': dependencies: '@babel/core': 7.26.0(supports-color@8.1.1) '@babel/helper-plugin-utils': 7.25.9 '@babel/plugin-transform-exponentiation-operator@7.26.3(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 - - '@babel/plugin-transform-export-namespace-from@7.25.9(@babel/core@7.26.0(supports-color@8.1.1))': dependencies: '@babel/core': 7.26.0(supports-color@8.1.1) '@babel/helper-plugin-utils': 7.25.9 '@babel/plugin-transform-export-namespace-from@7.25.9(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 - - '@babel/plugin-transform-for-of@7.25.9(@babel/core@7.26.0(supports-color@8.1.1))(supports-color@8.1.1)': dependencies: '@babel/core': 7.26.0(supports-color@8.1.1) '@babel/helper-plugin-utils': 7.25.9 - '@babel/helper-skip-transparent-expression-wrappers': 7.25.9(supports-color@8.1.1) - transitivePeerDependencies: - - supports-color - '@babel/plugin-transform-for-of@7.25.9(@babel/core@7.26.0)': + '@babel/plugin-transform-for-of@7.25.9(@babel/core@7.26.0)(supports-color@8.1.1)': dependencies: - '@babel/core': 7.26.0 + '@babel/core': 7.26.0(supports-color@8.1.1) '@babel/helper-plugin-utils': 7.25.9 '@babel/helper-skip-transparent-expression-wrappers': 7.25.9(supports-color@8.1.1) transitivePeerDependencies: - supports-color - '@babel/plugin-transform-function-name@7.25.9(@babel/core@7.26.0(supports-color@8.1.1))(supports-color@8.1.1)': + '@babel/plugin-transform-function-name@7.25.9(@babel/core@7.26.0)(supports-color@8.1.1)': dependencies: '@babel/core': 7.26.0(supports-color@8.1.1) '@babel/helper-compilation-targets': 7.25.9 @@ -11297,382 +11058,198 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/plugin-transform-function-name@7.25.9(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-compilation-targets': 7.25.9 - '@babel/helper-plugin-utils': 7.25.9 - '@babel/traverse': 7.26.4(supports-color@8.1.1) - transitivePeerDependencies: - - supports-color - - '@babel/plugin-transform-json-strings@7.25.9(@babel/core@7.26.0(supports-color@8.1.1))': - dependencies: - '@babel/core': 7.26.0(supports-color@8.1.1) - '@babel/helper-plugin-utils': 7.25.9 - '@babel/plugin-transform-json-strings@7.25.9(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 - - '@babel/plugin-transform-literals@7.25.9(@babel/core@7.26.0(supports-color@8.1.1))': dependencies: '@babel/core': 7.26.0(supports-color@8.1.1) '@babel/helper-plugin-utils': 7.25.9 '@babel/plugin-transform-literals@7.25.9(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 - - '@babel/plugin-transform-logical-assignment-operators@7.25.9(@babel/core@7.26.0(supports-color@8.1.1))': dependencies: '@babel/core': 7.26.0(supports-color@8.1.1) '@babel/helper-plugin-utils': 7.25.9 '@babel/plugin-transform-logical-assignment-operators@7.25.9(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 - - '@babel/plugin-transform-member-expression-literals@7.25.9(@babel/core@7.26.0(supports-color@8.1.1))': dependencies: '@babel/core': 7.26.0(supports-color@8.1.1) '@babel/helper-plugin-utils': 7.25.9 '@babel/plugin-transform-member-expression-literals@7.25.9(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 - - '@babel/plugin-transform-modules-amd@7.25.9(@babel/core@7.26.0(supports-color@8.1.1))(supports-color@8.1.1)': dependencies: '@babel/core': 7.26.0(supports-color@8.1.1) - '@babel/helper-module-transforms': 7.26.0(@babel/core@7.26.0(supports-color@8.1.1))(supports-color@8.1.1) '@babel/helper-plugin-utils': 7.25.9 - transitivePeerDependencies: - - supports-color - - '@babel/plugin-transform-modules-amd@7.25.9(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-module-transforms': 7.26.0(@babel/core@7.26.0) - '@babel/helper-plugin-utils': 7.25.9 - transitivePeerDependencies: - - supports-color - '@babel/plugin-transform-modules-commonjs@7.26.3(@babel/core@7.26.0(supports-color@8.1.1))(supports-color@8.1.1)': + '@babel/plugin-transform-modules-amd@7.25.9(@babel/core@7.26.0)(supports-color@8.1.1)': dependencies: '@babel/core': 7.26.0(supports-color@8.1.1) - '@babel/helper-module-transforms': 7.26.0(@babel/core@7.26.0(supports-color@8.1.1))(supports-color@8.1.1) + '@babel/helper-module-transforms': 7.26.0(@babel/core@7.26.0)(supports-color@8.1.1) '@babel/helper-plugin-utils': 7.25.9 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-modules-commonjs@7.26.3(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-module-transforms': 7.26.0(@babel/core@7.26.0) - '@babel/helper-plugin-utils': 7.25.9 - transitivePeerDependencies: - - supports-color - - '@babel/plugin-transform-modules-systemjs@7.25.9(@babel/core@7.26.0(supports-color@8.1.1))(supports-color@8.1.1)': + '@babel/plugin-transform-modules-commonjs@7.26.3(@babel/core@7.26.0)(supports-color@8.1.1)': dependencies: '@babel/core': 7.26.0(supports-color@8.1.1) - '@babel/helper-module-transforms': 7.26.0(@babel/core@7.26.0(supports-color@8.1.1))(supports-color@8.1.1) + '@babel/helper-module-transforms': 7.26.0(@babel/core@7.26.0)(supports-color@8.1.1) '@babel/helper-plugin-utils': 7.25.9 - '@babel/helper-validator-identifier': 7.25.9 - '@babel/traverse': 7.26.4(supports-color@8.1.1) transitivePeerDependencies: - supports-color - '@babel/plugin-transform-modules-systemjs@7.25.9(@babel/core@7.26.0)': + '@babel/plugin-transform-modules-systemjs@7.25.9(@babel/core@7.26.0)(supports-color@8.1.1)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-module-transforms': 7.26.0(@babel/core@7.26.0) + '@babel/core': 7.26.0(supports-color@8.1.1) + '@babel/helper-module-transforms': 7.26.0(@babel/core@7.26.0)(supports-color@8.1.1) '@babel/helper-plugin-utils': 7.25.9 '@babel/helper-validator-identifier': 7.25.9 '@babel/traverse': 7.26.4(supports-color@8.1.1) transitivePeerDependencies: - supports-color - '@babel/plugin-transform-modules-umd@7.25.9(@babel/core@7.26.0(supports-color@8.1.1))(supports-color@8.1.1)': + '@babel/plugin-transform-modules-umd@7.25.9(@babel/core@7.26.0)(supports-color@8.1.1)': dependencies: '@babel/core': 7.26.0(supports-color@8.1.1) - '@babel/helper-module-transforms': 7.26.0(@babel/core@7.26.0(supports-color@8.1.1))(supports-color@8.1.1) - '@babel/helper-plugin-utils': 7.25.9 - transitivePeerDependencies: - - supports-color - - '@babel/plugin-transform-modules-umd@7.25.9(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-module-transforms': 7.26.0(@babel/core@7.26.0) + '@babel/helper-module-transforms': 7.26.0(@babel/core@7.26.0)(supports-color@8.1.1) '@babel/helper-plugin-utils': 7.25.9 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-named-capturing-groups-regex@7.25.9(@babel/core@7.26.0(supports-color@8.1.1))': - dependencies: - '@babel/core': 7.26.0(supports-color@8.1.1) - '@babel/helper-create-regexp-features-plugin': 7.26.3(@babel/core@7.26.0(supports-color@8.1.1)) - '@babel/helper-plugin-utils': 7.25.9 - '@babel/plugin-transform-named-capturing-groups-regex@7.25.9(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-create-regexp-features-plugin': 7.26.3(@babel/core@7.26.0) - '@babel/helper-plugin-utils': 7.25.9 - - '@babel/plugin-transform-new-target@7.25.9(@babel/core@7.26.0(supports-color@8.1.1))': dependencies: '@babel/core': 7.26.0(supports-color@8.1.1) + '@babel/helper-create-regexp-features-plugin': 7.26.3(@babel/core@7.26.0) '@babel/helper-plugin-utils': 7.25.9 '@babel/plugin-transform-new-target@7.25.9(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 - - '@babel/plugin-transform-nullish-coalescing-operator@7.25.9(@babel/core@7.26.0(supports-color@8.1.1))': dependencies: '@babel/core': 7.26.0(supports-color@8.1.1) '@babel/helper-plugin-utils': 7.25.9 '@babel/plugin-transform-nullish-coalescing-operator@7.25.9(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 - - '@babel/plugin-transform-numeric-separator@7.25.9(@babel/core@7.26.0(supports-color@8.1.1))': dependencies: '@babel/core': 7.26.0(supports-color@8.1.1) '@babel/helper-plugin-utils': 7.25.9 '@babel/plugin-transform-numeric-separator@7.25.9(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 - - '@babel/plugin-transform-object-rest-spread@7.25.9(@babel/core@7.26.0(supports-color@8.1.1))': dependencies: '@babel/core': 7.26.0(supports-color@8.1.1) - '@babel/helper-compilation-targets': 7.25.9 '@babel/helper-plugin-utils': 7.25.9 - '@babel/plugin-transform-parameters': 7.25.9(@babel/core@7.26.0(supports-color@8.1.1)) '@babel/plugin-transform-object-rest-spread@7.25.9(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.26.0 + '@babel/core': 7.26.0(supports-color@8.1.1) '@babel/helper-compilation-targets': 7.25.9 '@babel/helper-plugin-utils': 7.25.9 '@babel/plugin-transform-parameters': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-object-super@7.25.9(@babel/core@7.26.0(supports-color@8.1.1))(supports-color@8.1.1)': + '@babel/plugin-transform-object-super@7.25.9(@babel/core@7.26.0)(supports-color@8.1.1)': dependencies: '@babel/core': 7.26.0(supports-color@8.1.1) '@babel/helper-plugin-utils': 7.25.9 - '@babel/helper-replace-supers': 7.25.9(@babel/core@7.26.0(supports-color@8.1.1))(supports-color@8.1.1) + '@babel/helper-replace-supers': 7.25.9(@babel/core@7.26.0)(supports-color@8.1.1) transitivePeerDependencies: - supports-color - '@babel/plugin-transform-object-super@7.25.9(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 - '@babel/helper-replace-supers': 7.25.9(@babel/core@7.26.0) - transitivePeerDependencies: - - supports-color - - '@babel/plugin-transform-optional-catch-binding@7.25.9(@babel/core@7.26.0(supports-color@8.1.1))': - dependencies: - '@babel/core': 7.26.0(supports-color@8.1.1) - '@babel/helper-plugin-utils': 7.25.9 - '@babel/plugin-transform-optional-catch-binding@7.25.9(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 - - '@babel/plugin-transform-optional-chaining@7.25.9(@babel/core@7.26.0(supports-color@8.1.1))(supports-color@8.1.1)': dependencies: '@babel/core': 7.26.0(supports-color@8.1.1) '@babel/helper-plugin-utils': 7.25.9 - '@babel/helper-skip-transparent-expression-wrappers': 7.25.9(supports-color@8.1.1) - transitivePeerDependencies: - - supports-color - '@babel/plugin-transform-optional-chaining@7.25.9(@babel/core@7.26.0)': + '@babel/plugin-transform-optional-chaining@7.25.9(@babel/core@7.26.0)(supports-color@8.1.1)': dependencies: - '@babel/core': 7.26.0 + '@babel/core': 7.26.0(supports-color@8.1.1) '@babel/helper-plugin-utils': 7.25.9 '@babel/helper-skip-transparent-expression-wrappers': 7.25.9(supports-color@8.1.1) transitivePeerDependencies: - supports-color - '@babel/plugin-transform-parameters@7.25.9(@babel/core@7.26.0(supports-color@8.1.1))': - dependencies: - '@babel/core': 7.26.0(supports-color@8.1.1) - '@babel/helper-plugin-utils': 7.25.9 - '@babel/plugin-transform-parameters@7.25.9(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 - - '@babel/plugin-transform-private-methods@7.25.9(@babel/core@7.26.0(supports-color@8.1.1))(supports-color@8.1.1)': dependencies: '@babel/core': 7.26.0(supports-color@8.1.1) - '@babel/helper-create-class-features-plugin': 7.25.9(@babel/core@7.26.0(supports-color@8.1.1))(supports-color@8.1.1) '@babel/helper-plugin-utils': 7.25.9 - transitivePeerDependencies: - - supports-color - '@babel/plugin-transform-private-methods@7.25.9(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-create-class-features-plugin': 7.25.9(@babel/core@7.26.0) - '@babel/helper-plugin-utils': 7.25.9 - transitivePeerDependencies: - - supports-color - - '@babel/plugin-transform-private-property-in-object@7.25.9(@babel/core@7.26.0(supports-color@8.1.1))(supports-color@8.1.1)': + '@babel/plugin-transform-private-methods@7.25.9(@babel/core@7.26.0)(supports-color@8.1.1)': dependencies: '@babel/core': 7.26.0(supports-color@8.1.1) - '@babel/helper-annotate-as-pure': 7.25.9 - '@babel/helper-create-class-features-plugin': 7.25.9(@babel/core@7.26.0(supports-color@8.1.1))(supports-color@8.1.1) + '@babel/helper-create-class-features-plugin': 7.25.9(@babel/core@7.26.0)(supports-color@8.1.1) '@babel/helper-plugin-utils': 7.25.9 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-private-property-in-object@7.25.9(@babel/core@7.26.0)': + '@babel/plugin-transform-private-property-in-object@7.25.9(@babel/core@7.26.0)(supports-color@8.1.1)': dependencies: - '@babel/core': 7.26.0 + '@babel/core': 7.26.0(supports-color@8.1.1) '@babel/helper-annotate-as-pure': 7.25.9 - '@babel/helper-create-class-features-plugin': 7.25.9(@babel/core@7.26.0) + '@babel/helper-create-class-features-plugin': 7.25.9(@babel/core@7.26.0)(supports-color@8.1.1) '@babel/helper-plugin-utils': 7.25.9 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-property-literals@7.25.9(@babel/core@7.26.0(supports-color@8.1.1))': - dependencies: - '@babel/core': 7.26.0(supports-color@8.1.1) - '@babel/helper-plugin-utils': 7.25.9 - '@babel/plugin-transform-property-literals@7.25.9(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 - - '@babel/plugin-transform-regenerator@7.25.9(@babel/core@7.26.0(supports-color@8.1.1))': dependencies: '@babel/core': 7.26.0(supports-color@8.1.1) '@babel/helper-plugin-utils': 7.25.9 - regenerator-transform: 0.15.2 '@babel/plugin-transform-regenerator@7.25.9(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 - regenerator-transform: 0.15.2 - - '@babel/plugin-transform-regexp-modifiers@7.26.0(@babel/core@7.26.0(supports-color@8.1.1))': dependencies: '@babel/core': 7.26.0(supports-color@8.1.1) - '@babel/helper-create-regexp-features-plugin': 7.26.3(@babel/core@7.26.0(supports-color@8.1.1)) '@babel/helper-plugin-utils': 7.25.9 + regenerator-transform: 0.15.2 '@babel/plugin-transform-regexp-modifiers@7.26.0(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-create-regexp-features-plugin': 7.26.3(@babel/core@7.26.0) - '@babel/helper-plugin-utils': 7.25.9 - - '@babel/plugin-transform-reserved-words@7.25.9(@babel/core@7.26.0(supports-color@8.1.1))': dependencies: '@babel/core': 7.26.0(supports-color@8.1.1) + '@babel/helper-create-regexp-features-plugin': 7.26.3(@babel/core@7.26.0) '@babel/helper-plugin-utils': 7.25.9 '@babel/plugin-transform-reserved-words@7.25.9(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.26.0 + '@babel/core': 7.26.0(supports-color@8.1.1) '@babel/helper-plugin-utils': 7.25.9 '@babel/plugin-transform-runtime@7.25.9(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.26.0 + '@babel/core': 7.26.0(supports-color@8.1.1) '@babel/helper-module-imports': 7.25.9(supports-color@8.1.1) '@babel/helper-plugin-utils': 7.25.9 - babel-plugin-polyfill-corejs2: 0.4.12(@babel/core@7.26.0) - babel-plugin-polyfill-corejs3: 0.10.6(@babel/core@7.26.0) - babel-plugin-polyfill-regenerator: 0.6.3(@babel/core@7.26.0) + babel-plugin-polyfill-corejs2: 0.4.12(@babel/core@7.26.0)(supports-color@8.1.1) + babel-plugin-polyfill-corejs3: 0.10.6(@babel/core@7.26.0)(supports-color@8.1.1) + babel-plugin-polyfill-regenerator: 0.6.3(@babel/core@7.26.0)(supports-color@8.1.1) semver: 6.3.1 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-shorthand-properties@7.25.9(@babel/core@7.26.0(supports-color@8.1.1))': - dependencies: - '@babel/core': 7.26.0(supports-color@8.1.1) - '@babel/helper-plugin-utils': 7.25.9 - '@babel/plugin-transform-shorthand-properties@7.25.9(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 - - '@babel/plugin-transform-spread@7.25.9(@babel/core@7.26.0(supports-color@8.1.1))(supports-color@8.1.1)': dependencies: '@babel/core': 7.26.0(supports-color@8.1.1) '@babel/helper-plugin-utils': 7.25.9 - '@babel/helper-skip-transparent-expression-wrappers': 7.25.9(supports-color@8.1.1) - transitivePeerDependencies: - - supports-color - '@babel/plugin-transform-spread@7.25.9(@babel/core@7.26.0)': + '@babel/plugin-transform-spread@7.25.9(@babel/core@7.26.0)(supports-color@8.1.1)': dependencies: - '@babel/core': 7.26.0 + '@babel/core': 7.26.0(supports-color@8.1.1) '@babel/helper-plugin-utils': 7.25.9 '@babel/helper-skip-transparent-expression-wrappers': 7.25.9(supports-color@8.1.1) transitivePeerDependencies: - supports-color - '@babel/plugin-transform-sticky-regex@7.25.9(@babel/core@7.26.0(supports-color@8.1.1))': - dependencies: - '@babel/core': 7.26.0(supports-color@8.1.1) - '@babel/helper-plugin-utils': 7.25.9 - '@babel/plugin-transform-sticky-regex@7.25.9(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 - - '@babel/plugin-transform-template-literals@7.25.9(@babel/core@7.26.0(supports-color@8.1.1))': dependencies: '@babel/core': 7.26.0(supports-color@8.1.1) '@babel/helper-plugin-utils': 7.25.9 '@babel/plugin-transform-template-literals@7.25.9(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 - - '@babel/plugin-transform-typeof-symbol@7.25.9(@babel/core@7.26.0(supports-color@8.1.1))': dependencies: '@babel/core': 7.26.0(supports-color@8.1.1) '@babel/helper-plugin-utils': 7.25.9 '@babel/plugin-transform-typeof-symbol@7.25.9(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.26.0 + '@babel/core': 7.26.0(supports-color@8.1.1) '@babel/helper-plugin-utils': 7.25.9 '@babel/plugin-transform-typescript@7.26.3(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.26.0 + '@babel/core': 7.26.0(supports-color@8.1.1) '@babel/helper-annotate-as-pure': 7.25.9 - '@babel/helper-create-class-features-plugin': 7.25.9(@babel/core@7.26.0) + '@babel/helper-create-class-features-plugin': 7.25.9(@babel/core@7.26.0)(supports-color@8.1.1) '@babel/helper-plugin-utils': 7.25.9 '@babel/helper-skip-transparent-expression-wrappers': 7.25.9(supports-color@8.1.1) '@babel/plugin-syntax-typescript': 7.25.9(@babel/core@7.26.0) @@ -11681,62 +11258,39 @@ snapshots: '@babel/plugin-transform-typescript@7.4.5(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.26.0 + '@babel/core': 7.26.0(supports-color@8.1.1) '@babel/helper-plugin-utils': 7.25.9 '@babel/plugin-syntax-typescript': 7.25.9(@babel/core@7.26.0) '@babel/plugin-transform-typescript@7.5.5(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-create-class-features-plugin': 7.25.9(@babel/core@7.26.0) + '@babel/core': 7.26.0(supports-color@8.1.1) + '@babel/helper-create-class-features-plugin': 7.25.9(@babel/core@7.26.0)(supports-color@8.1.1) '@babel/helper-plugin-utils': 7.25.9 '@babel/plugin-syntax-typescript': 7.25.9(@babel/core@7.26.0) transitivePeerDependencies: - supports-color - '@babel/plugin-transform-unicode-escapes@7.25.9(@babel/core@7.26.0(supports-color@8.1.1))': - dependencies: - '@babel/core': 7.26.0(supports-color@8.1.1) - '@babel/helper-plugin-utils': 7.25.9 - '@babel/plugin-transform-unicode-escapes@7.25.9(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 - - '@babel/plugin-transform-unicode-property-regex@7.25.9(@babel/core@7.26.0(supports-color@8.1.1))': dependencies: '@babel/core': 7.26.0(supports-color@8.1.1) - '@babel/helper-create-regexp-features-plugin': 7.26.3(@babel/core@7.26.0(supports-color@8.1.1)) '@babel/helper-plugin-utils': 7.25.9 '@babel/plugin-transform-unicode-property-regex@7.25.9(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-create-regexp-features-plugin': 7.26.3(@babel/core@7.26.0) - '@babel/helper-plugin-utils': 7.25.9 - - '@babel/plugin-transform-unicode-regex@7.25.9(@babel/core@7.26.0(supports-color@8.1.1))': dependencies: '@babel/core': 7.26.0(supports-color@8.1.1) - '@babel/helper-create-regexp-features-plugin': 7.26.3(@babel/core@7.26.0(supports-color@8.1.1)) - '@babel/helper-plugin-utils': 7.25.9 - - '@babel/plugin-transform-unicode-regex@7.25.9(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 '@babel/helper-create-regexp-features-plugin': 7.26.3(@babel/core@7.26.0) '@babel/helper-plugin-utils': 7.25.9 - '@babel/plugin-transform-unicode-sets-regex@7.25.9(@babel/core@7.26.0(supports-color@8.1.1))': + '@babel/plugin-transform-unicode-regex@7.25.9(@babel/core@7.26.0)': dependencies: '@babel/core': 7.26.0(supports-color@8.1.1) - '@babel/helper-create-regexp-features-plugin': 7.26.3(@babel/core@7.26.0(supports-color@8.1.1)) + '@babel/helper-create-regexp-features-plugin': 7.26.3(@babel/core@7.26.0) '@babel/helper-plugin-utils': 7.25.9 '@babel/plugin-transform-unicode-sets-regex@7.25.9(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.26.0 + '@babel/core': 7.26.0(supports-color@8.1.1) '@babel/helper-create-regexp-features-plugin': 7.26.3(@babel/core@7.26.0) '@babel/helper-plugin-utils': 7.25.9 @@ -11745,105 +11299,30 @@ snapshots: core-js: 2.6.12 regenerator-runtime: 0.13.11 - '@babel/preset-env@7.26.0(@babel/core@7.26.0(supports-color@8.1.1))(supports-color@8.1.1)': + '@babel/preset-env@7.26.0(@babel/core@7.26.0)(supports-color@8.1.1)': dependencies: '@babel/compat-data': 7.26.3 '@babel/core': 7.26.0(supports-color@8.1.1) '@babel/helper-compilation-targets': 7.25.9 '@babel/helper-plugin-utils': 7.25.9 '@babel/helper-validator-option': 7.25.9 - '@babel/plugin-bugfix-firefox-class-in-computed-class-key': 7.25.9(@babel/core@7.26.0(supports-color@8.1.1))(supports-color@8.1.1) - '@babel/plugin-bugfix-safari-class-field-initializer-scope': 7.25.9(@babel/core@7.26.0(supports-color@8.1.1)) - '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.25.9(@babel/core@7.26.0(supports-color@8.1.1)) - '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.25.9(@babel/core@7.26.0(supports-color@8.1.1))(supports-color@8.1.1) - '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly': 7.25.9(@babel/core@7.26.0(supports-color@8.1.1))(supports-color@8.1.1) - '@babel/plugin-proposal-private-property-in-object': 7.21.0-placeholder-for-preset-env.2(@babel/core@7.26.0(supports-color@8.1.1)) - '@babel/plugin-syntax-import-assertions': 7.26.0(@babel/core@7.26.0(supports-color@8.1.1)) - '@babel/plugin-syntax-import-attributes': 7.26.0(@babel/core@7.26.0(supports-color@8.1.1)) - '@babel/plugin-syntax-unicode-sets-regex': 7.18.6(@babel/core@7.26.0(supports-color@8.1.1)) - '@babel/plugin-transform-arrow-functions': 7.25.9(@babel/core@7.26.0(supports-color@8.1.1)) - '@babel/plugin-transform-async-generator-functions': 7.25.9(@babel/core@7.26.0(supports-color@8.1.1))(supports-color@8.1.1) - '@babel/plugin-transform-async-to-generator': 7.25.9(@babel/core@7.26.0(supports-color@8.1.1))(supports-color@8.1.1) - '@babel/plugin-transform-block-scoped-functions': 7.25.9(@babel/core@7.26.0(supports-color@8.1.1)) - '@babel/plugin-transform-block-scoping': 7.25.9(@babel/core@7.26.0(supports-color@8.1.1)) - '@babel/plugin-transform-class-properties': 7.25.9(@babel/core@7.26.0(supports-color@8.1.1))(supports-color@8.1.1) - '@babel/plugin-transform-class-static-block': 7.26.0(@babel/core@7.26.0(supports-color@8.1.1))(supports-color@8.1.1) - '@babel/plugin-transform-classes': 7.25.9(@babel/core@7.26.0(supports-color@8.1.1))(supports-color@8.1.1) - '@babel/plugin-transform-computed-properties': 7.25.9(@babel/core@7.26.0(supports-color@8.1.1)) - '@babel/plugin-transform-destructuring': 7.25.9(@babel/core@7.26.0(supports-color@8.1.1)) - '@babel/plugin-transform-dotall-regex': 7.25.9(@babel/core@7.26.0(supports-color@8.1.1)) - '@babel/plugin-transform-duplicate-keys': 7.25.9(@babel/core@7.26.0(supports-color@8.1.1)) - '@babel/plugin-transform-duplicate-named-capturing-groups-regex': 7.25.9(@babel/core@7.26.0(supports-color@8.1.1)) - '@babel/plugin-transform-dynamic-import': 7.25.9(@babel/core@7.26.0(supports-color@8.1.1)) - '@babel/plugin-transform-exponentiation-operator': 7.26.3(@babel/core@7.26.0(supports-color@8.1.1)) - '@babel/plugin-transform-export-namespace-from': 7.25.9(@babel/core@7.26.0(supports-color@8.1.1)) - '@babel/plugin-transform-for-of': 7.25.9(@babel/core@7.26.0(supports-color@8.1.1))(supports-color@8.1.1) - '@babel/plugin-transform-function-name': 7.25.9(@babel/core@7.26.0(supports-color@8.1.1))(supports-color@8.1.1) - '@babel/plugin-transform-json-strings': 7.25.9(@babel/core@7.26.0(supports-color@8.1.1)) - '@babel/plugin-transform-literals': 7.25.9(@babel/core@7.26.0(supports-color@8.1.1)) - '@babel/plugin-transform-logical-assignment-operators': 7.25.9(@babel/core@7.26.0(supports-color@8.1.1)) - '@babel/plugin-transform-member-expression-literals': 7.25.9(@babel/core@7.26.0(supports-color@8.1.1)) - '@babel/plugin-transform-modules-amd': 7.25.9(@babel/core@7.26.0(supports-color@8.1.1))(supports-color@8.1.1) - '@babel/plugin-transform-modules-commonjs': 7.26.3(@babel/core@7.26.0(supports-color@8.1.1))(supports-color@8.1.1) - '@babel/plugin-transform-modules-systemjs': 7.25.9(@babel/core@7.26.0(supports-color@8.1.1))(supports-color@8.1.1) - '@babel/plugin-transform-modules-umd': 7.25.9(@babel/core@7.26.0(supports-color@8.1.1))(supports-color@8.1.1) - '@babel/plugin-transform-named-capturing-groups-regex': 7.25.9(@babel/core@7.26.0(supports-color@8.1.1)) - '@babel/plugin-transform-new-target': 7.25.9(@babel/core@7.26.0(supports-color@8.1.1)) - '@babel/plugin-transform-nullish-coalescing-operator': 7.25.9(@babel/core@7.26.0(supports-color@8.1.1)) - '@babel/plugin-transform-numeric-separator': 7.25.9(@babel/core@7.26.0(supports-color@8.1.1)) - '@babel/plugin-transform-object-rest-spread': 7.25.9(@babel/core@7.26.0(supports-color@8.1.1)) - '@babel/plugin-transform-object-super': 7.25.9(@babel/core@7.26.0(supports-color@8.1.1))(supports-color@8.1.1) - '@babel/plugin-transform-optional-catch-binding': 7.25.9(@babel/core@7.26.0(supports-color@8.1.1)) - '@babel/plugin-transform-optional-chaining': 7.25.9(@babel/core@7.26.0(supports-color@8.1.1))(supports-color@8.1.1) - '@babel/plugin-transform-parameters': 7.25.9(@babel/core@7.26.0(supports-color@8.1.1)) - '@babel/plugin-transform-private-methods': 7.25.9(@babel/core@7.26.0(supports-color@8.1.1))(supports-color@8.1.1) - '@babel/plugin-transform-private-property-in-object': 7.25.9(@babel/core@7.26.0(supports-color@8.1.1))(supports-color@8.1.1) - '@babel/plugin-transform-property-literals': 7.25.9(@babel/core@7.26.0(supports-color@8.1.1)) - '@babel/plugin-transform-regenerator': 7.25.9(@babel/core@7.26.0(supports-color@8.1.1)) - '@babel/plugin-transform-regexp-modifiers': 7.26.0(@babel/core@7.26.0(supports-color@8.1.1)) - '@babel/plugin-transform-reserved-words': 7.25.9(@babel/core@7.26.0(supports-color@8.1.1)) - '@babel/plugin-transform-shorthand-properties': 7.25.9(@babel/core@7.26.0(supports-color@8.1.1)) - '@babel/plugin-transform-spread': 7.25.9(@babel/core@7.26.0(supports-color@8.1.1))(supports-color@8.1.1) - '@babel/plugin-transform-sticky-regex': 7.25.9(@babel/core@7.26.0(supports-color@8.1.1)) - '@babel/plugin-transform-template-literals': 7.25.9(@babel/core@7.26.0(supports-color@8.1.1)) - '@babel/plugin-transform-typeof-symbol': 7.25.9(@babel/core@7.26.0(supports-color@8.1.1)) - '@babel/plugin-transform-unicode-escapes': 7.25.9(@babel/core@7.26.0(supports-color@8.1.1)) - '@babel/plugin-transform-unicode-property-regex': 7.25.9(@babel/core@7.26.0(supports-color@8.1.1)) - '@babel/plugin-transform-unicode-regex': 7.25.9(@babel/core@7.26.0(supports-color@8.1.1)) - '@babel/plugin-transform-unicode-sets-regex': 7.25.9(@babel/core@7.26.0(supports-color@8.1.1)) - '@babel/preset-modules': 0.1.6-no-external-plugins(@babel/core@7.26.0(supports-color@8.1.1)) - babel-plugin-polyfill-corejs2: 0.4.12(@babel/core@7.26.0(supports-color@8.1.1))(supports-color@8.1.1) - babel-plugin-polyfill-corejs3: 0.10.6(@babel/core@7.26.0(supports-color@8.1.1))(supports-color@8.1.1) - babel-plugin-polyfill-regenerator: 0.6.3(@babel/core@7.26.0(supports-color@8.1.1))(supports-color@8.1.1) - core-js-compat: 3.39.0 - semver: 6.3.1 - transitivePeerDependencies: - - supports-color - - '@babel/preset-env@7.26.0(@babel/core@7.26.0)': - dependencies: - '@babel/compat-data': 7.26.3 - '@babel/core': 7.26.0 - '@babel/helper-compilation-targets': 7.25.9 - '@babel/helper-plugin-utils': 7.25.9 - '@babel/helper-validator-option': 7.25.9 - '@babel/plugin-bugfix-firefox-class-in-computed-class-key': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-bugfix-firefox-class-in-computed-class-key': 7.25.9(@babel/core@7.26.0)(supports-color@8.1.1) '@babel/plugin-bugfix-safari-class-field-initializer-scope': 7.25.9(@babel/core@7.26.0) '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.25.9(@babel/core@7.26.0)(supports-color@8.1.1) + '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly': 7.25.9(@babel/core@7.26.0)(supports-color@8.1.1) '@babel/plugin-proposal-private-property-in-object': 7.21.0-placeholder-for-preset-env.2(@babel/core@7.26.0) '@babel/plugin-syntax-import-assertions': 7.26.0(@babel/core@7.26.0) '@babel/plugin-syntax-import-attributes': 7.26.0(@babel/core@7.26.0) '@babel/plugin-syntax-unicode-sets-regex': 7.18.6(@babel/core@7.26.0) '@babel/plugin-transform-arrow-functions': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-async-generator-functions': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-async-to-generator': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-async-generator-functions': 7.25.9(@babel/core@7.26.0)(supports-color@8.1.1) + '@babel/plugin-transform-async-to-generator': 7.25.9(@babel/core@7.26.0)(supports-color@8.1.1) '@babel/plugin-transform-block-scoped-functions': 7.25.9(@babel/core@7.26.0) '@babel/plugin-transform-block-scoping': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-class-properties': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-class-static-block': 7.26.0(@babel/core@7.26.0) - '@babel/plugin-transform-classes': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-class-properties': 7.25.9(@babel/core@7.26.0)(supports-color@8.1.1) + '@babel/plugin-transform-class-static-block': 7.26.0(@babel/core@7.26.0)(supports-color@8.1.1) + '@babel/plugin-transform-classes': 7.25.9(@babel/core@7.26.0)(supports-color@8.1.1) '@babel/plugin-transform-computed-properties': 7.25.9(@babel/core@7.26.0) '@babel/plugin-transform-destructuring': 7.25.9(@babel/core@7.26.0) '@babel/plugin-transform-dotall-regex': 7.25.9(@babel/core@7.26.0) @@ -11852,33 +11331,33 @@ snapshots: '@babel/plugin-transform-dynamic-import': 7.25.9(@babel/core@7.26.0) '@babel/plugin-transform-exponentiation-operator': 7.26.3(@babel/core@7.26.0) '@babel/plugin-transform-export-namespace-from': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-for-of': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-function-name': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-for-of': 7.25.9(@babel/core@7.26.0)(supports-color@8.1.1) + '@babel/plugin-transform-function-name': 7.25.9(@babel/core@7.26.0)(supports-color@8.1.1) '@babel/plugin-transform-json-strings': 7.25.9(@babel/core@7.26.0) '@babel/plugin-transform-literals': 7.25.9(@babel/core@7.26.0) '@babel/plugin-transform-logical-assignment-operators': 7.25.9(@babel/core@7.26.0) '@babel/plugin-transform-member-expression-literals': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-modules-amd': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-modules-commonjs': 7.26.3(@babel/core@7.26.0) - '@babel/plugin-transform-modules-systemjs': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-modules-umd': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-modules-amd': 7.25.9(@babel/core@7.26.0)(supports-color@8.1.1) + '@babel/plugin-transform-modules-commonjs': 7.26.3(@babel/core@7.26.0)(supports-color@8.1.1) + '@babel/plugin-transform-modules-systemjs': 7.25.9(@babel/core@7.26.0)(supports-color@8.1.1) + '@babel/plugin-transform-modules-umd': 7.25.9(@babel/core@7.26.0)(supports-color@8.1.1) '@babel/plugin-transform-named-capturing-groups-regex': 7.25.9(@babel/core@7.26.0) '@babel/plugin-transform-new-target': 7.25.9(@babel/core@7.26.0) '@babel/plugin-transform-nullish-coalescing-operator': 7.25.9(@babel/core@7.26.0) '@babel/plugin-transform-numeric-separator': 7.25.9(@babel/core@7.26.0) '@babel/plugin-transform-object-rest-spread': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-object-super': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-object-super': 7.25.9(@babel/core@7.26.0)(supports-color@8.1.1) '@babel/plugin-transform-optional-catch-binding': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-optional-chaining': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-optional-chaining': 7.25.9(@babel/core@7.26.0)(supports-color@8.1.1) '@babel/plugin-transform-parameters': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-private-methods': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-private-property-in-object': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-private-methods': 7.25.9(@babel/core@7.26.0)(supports-color@8.1.1) + '@babel/plugin-transform-private-property-in-object': 7.25.9(@babel/core@7.26.0)(supports-color@8.1.1) '@babel/plugin-transform-property-literals': 7.25.9(@babel/core@7.26.0) '@babel/plugin-transform-regenerator': 7.25.9(@babel/core@7.26.0) '@babel/plugin-transform-regexp-modifiers': 7.26.0(@babel/core@7.26.0) '@babel/plugin-transform-reserved-words': 7.25.9(@babel/core@7.26.0) '@babel/plugin-transform-shorthand-properties': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-spread': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-spread': 7.25.9(@babel/core@7.26.0)(supports-color@8.1.1) '@babel/plugin-transform-sticky-regex': 7.25.9(@babel/core@7.26.0) '@babel/plugin-transform-template-literals': 7.25.9(@babel/core@7.26.0) '@babel/plugin-transform-typeof-symbol': 7.25.9(@babel/core@7.26.0) @@ -11887,24 +11366,17 @@ snapshots: '@babel/plugin-transform-unicode-regex': 7.25.9(@babel/core@7.26.0) '@babel/plugin-transform-unicode-sets-regex': 7.25.9(@babel/core@7.26.0) '@babel/preset-modules': 0.1.6-no-external-plugins(@babel/core@7.26.0) - babel-plugin-polyfill-corejs2: 0.4.12(@babel/core@7.26.0) - babel-plugin-polyfill-corejs3: 0.10.6(@babel/core@7.26.0) - babel-plugin-polyfill-regenerator: 0.6.3(@babel/core@7.26.0) + babel-plugin-polyfill-corejs2: 0.4.12(@babel/core@7.26.0)(supports-color@8.1.1) + babel-plugin-polyfill-corejs3: 0.10.6(@babel/core@7.26.0)(supports-color@8.1.1) + babel-plugin-polyfill-regenerator: 0.6.3(@babel/core@7.26.0)(supports-color@8.1.1) core-js-compat: 3.39.0 semver: 6.3.1 transitivePeerDependencies: - supports-color - '@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.26.0(supports-color@8.1.1))': - dependencies: - '@babel/core': 7.26.0(supports-color@8.1.1) - '@babel/helper-plugin-utils': 7.25.9 - '@babel/types': 7.26.3 - esutils: 2.0.3 - '@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.26.0 + '@babel/core': 7.26.0(supports-color@8.1.1) '@babel/helper-plugin-utils': 7.25.9 '@babel/types': 7.26.3 esutils: 2.0.3 @@ -12203,7 +11675,7 @@ snapshots: dependencies: '@babel/core': 7.26.0(supports-color@8.1.1) '@embroider/core': 3.4.19 - babel-loader: 9.2.1(@babel/core@7.26.0(supports-color@8.1.1))(webpack@5.97.1) + babel-loader: 9.2.1(@babel/core@7.26.0)(webpack@5.97.1) transitivePeerDependencies: - supports-color - webpack @@ -12211,12 +11683,12 @@ snapshots: '@embroider/compat@3.7.0(@embroider/core@3.4.19)': dependencies: '@babel/code-frame': 7.26.2 - '@babel/core': 7.26.0 + '@babel/core': 7.26.0(supports-color@8.1.1) '@babel/plugin-syntax-decorators': 7.25.9(@babel/core@7.26.0) '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.26.0) '@babel/plugin-syntax-typescript': 7.25.9(@babel/core@7.26.0) '@babel/plugin-transform-runtime': 7.25.9(@babel/core@7.26.0) - '@babel/preset-env': 7.26.0(@babel/core@7.26.0) + '@babel/preset-env': 7.26.0(@babel/core@7.26.0)(supports-color@8.1.1) '@babel/runtime': 7.26.0 '@babel/traverse': 7.26.4(supports-color@8.1.1) '@embroider/core': 3.4.19 @@ -12263,7 +11735,7 @@ snapshots: '@embroider/core@3.4.19': dependencies: - '@babel/core': 7.26.0 + '@babel/core': 7.26.0(supports-color@8.1.1) '@babel/parser': 7.26.3 '@babel/traverse': 7.26.4(supports-color@8.1.1) '@embroider/macros': 1.16.9 @@ -12371,14 +11843,14 @@ snapshots: '@embroider/webpack@4.0.8(@embroider/core@3.4.19)(webpack@5.97.1)': dependencies: '@babel/core': 7.26.0(supports-color@8.1.1) - '@babel/preset-env': 7.26.0(@babel/core@7.26.0(supports-color@8.1.1))(supports-color@8.1.1) + '@babel/preset-env': 7.26.0(@babel/core@7.26.0)(supports-color@8.1.1) '@embroider/babel-loader-9': 3.1.1(@embroider/core@3.4.19)(supports-color@8.1.1)(webpack@5.97.1) '@embroider/core': 3.4.19 '@embroider/hbs-loader': 3.0.3(@embroider/core@3.4.19)(webpack@5.97.1) '@embroider/shared-internals': 2.8.1(supports-color@8.1.1) '@types/supports-color': 8.1.3 assert-never: 1.3.0 - babel-loader: 8.4.1(@babel/core@7.26.0(supports-color@8.1.1))(webpack@5.97.1) + babel-loader: 8.4.1(@babel/core@7.26.0)(webpack@5.97.1) css-loader: 5.2.7(webpack@5.97.1) csso: 4.2.0 debug: 4.4.0(supports-color@8.1.1) @@ -13114,7 +12586,7 @@ snapshots: '@sentry/ember@8.42.0(webpack@5.97.1)': dependencies: - '@babel/core': 7.26.0 + '@babel/core': 7.26.0(supports-color@8.1.1) '@embroider/macros': 1.16.9 '@sentry/browser': 8.42.0 '@sentry/core': 8.42.0 @@ -14142,18 +13614,9 @@ snapshots: babel-import-util@3.0.0: {} - babel-loader@8.4.1(@babel/core@7.26.0(supports-color@8.1.1))(webpack@5.97.1): - dependencies: - '@babel/core': 7.26.0(supports-color@8.1.1) - find-cache-dir: 3.3.2 - loader-utils: 2.0.4 - make-dir: 3.1.0 - schema-utils: 2.7.1 - webpack: 5.97.1 - babel-loader@8.4.1(@babel/core@7.26.0)(webpack@4.47.0): dependencies: - '@babel/core': 7.26.0 + '@babel/core': 7.26.0(supports-color@8.1.1) find-cache-dir: 3.3.2 loader-utils: 2.0.4 make-dir: 3.1.0 @@ -14162,14 +13625,14 @@ snapshots: babel-loader@8.4.1(@babel/core@7.26.0)(webpack@5.97.1): dependencies: - '@babel/core': 7.26.0 + '@babel/core': 7.26.0(supports-color@8.1.1) find-cache-dir: 3.3.2 loader-utils: 2.0.4 make-dir: 3.1.0 schema-utils: 2.7.1 webpack: 5.97.1 - babel-loader@9.2.1(@babel/core@7.26.0(supports-color@8.1.1))(webpack@5.97.1): + babel-loader@9.2.1(@babel/core@7.26.0)(webpack@5.97.1): dependencies: '@babel/core': 7.26.0(supports-color@8.1.1) find-cache-dir: 4.0.0 @@ -14182,12 +13645,12 @@ snapshots: babel-plugin-debug-macros@0.2.0(@babel/core@7.26.0): dependencies: - '@babel/core': 7.26.0 + '@babel/core': 7.26.0(supports-color@8.1.1) semver: 5.7.2 babel-plugin-debug-macros@0.3.4(@babel/core@7.26.0): dependencies: - '@babel/core': 7.26.0 + '@babel/core': 7.26.0(supports-color@8.1.1) semver: 5.7.2 babel-plugin-ember-data-packages-polyfill@0.1.2: @@ -14239,51 +13702,27 @@ snapshots: reselect: 4.1.8 resolve: 1.22.8 - babel-plugin-polyfill-corejs2@0.4.12(@babel/core@7.26.0(supports-color@8.1.1))(supports-color@8.1.1): + babel-plugin-polyfill-corejs2@0.4.12(@babel/core@7.26.0)(supports-color@8.1.1): dependencies: '@babel/compat-data': 7.26.3 '@babel/core': 7.26.0(supports-color@8.1.1) - '@babel/helper-define-polyfill-provider': 0.6.3(@babel/core@7.26.0(supports-color@8.1.1))(supports-color@8.1.1) + '@babel/helper-define-polyfill-provider': 0.6.3(@babel/core@7.26.0)(supports-color@8.1.1) semver: 6.3.1 transitivePeerDependencies: - supports-color - babel-plugin-polyfill-corejs2@0.4.12(@babel/core@7.26.0): - dependencies: - '@babel/compat-data': 7.26.3 - '@babel/core': 7.26.0 - '@babel/helper-define-polyfill-provider': 0.6.3(@babel/core@7.26.0) - semver: 6.3.1 - transitivePeerDependencies: - - supports-color - - babel-plugin-polyfill-corejs3@0.10.6(@babel/core@7.26.0(supports-color@8.1.1))(supports-color@8.1.1): + babel-plugin-polyfill-corejs3@0.10.6(@babel/core@7.26.0)(supports-color@8.1.1): dependencies: '@babel/core': 7.26.0(supports-color@8.1.1) - '@babel/helper-define-polyfill-provider': 0.6.3(@babel/core@7.26.0(supports-color@8.1.1))(supports-color@8.1.1) - core-js-compat: 3.39.0 - transitivePeerDependencies: - - supports-color - - babel-plugin-polyfill-corejs3@0.10.6(@babel/core@7.26.0): - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-define-polyfill-provider': 0.6.3(@babel/core@7.26.0) + '@babel/helper-define-polyfill-provider': 0.6.3(@babel/core@7.26.0)(supports-color@8.1.1) core-js-compat: 3.39.0 transitivePeerDependencies: - supports-color - babel-plugin-polyfill-regenerator@0.6.3(@babel/core@7.26.0(supports-color@8.1.1))(supports-color@8.1.1): + babel-plugin-polyfill-regenerator@0.6.3(@babel/core@7.26.0)(supports-color@8.1.1): dependencies: '@babel/core': 7.26.0(supports-color@8.1.1) - '@babel/helper-define-polyfill-provider': 0.6.3(@babel/core@7.26.0(supports-color@8.1.1))(supports-color@8.1.1) - transitivePeerDependencies: - - supports-color - - babel-plugin-polyfill-regenerator@0.6.3(@babel/core@7.26.0): - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-define-polyfill-provider': 0.6.3(@babel/core@7.26.0) + '@babel/helper-define-polyfill-provider': 0.6.3(@babel/core@7.26.0)(supports-color@8.1.1) transitivePeerDependencies: - supports-color @@ -14502,7 +13941,7 @@ snapshots: broccoli-babel-transpiler@7.8.1: dependencies: - '@babel/core': 7.26.0 + '@babel/core': 7.26.0(supports-color@8.1.1) '@babel/polyfill': 7.12.1 broccoli-funnel: 2.0.2 broccoli-merge-trees: 3.0.2 @@ -14519,7 +13958,7 @@ snapshots: broccoli-babel-transpiler@8.0.0(@babel/core@7.26.0): dependencies: - '@babel/core': 7.26.0 + '@babel/core': 7.26.0(supports-color@8.1.1) broccoli-persistent-filter: 3.1.3 clone: 2.1.2 hash-for-dep: 1.5.1 @@ -15943,8 +15382,8 @@ snapshots: ember-auto-import@1.12.2: dependencies: - '@babel/core': 7.26.0 - '@babel/preset-env': 7.26.0(@babel/core@7.26.0) + '@babel/core': 7.26.0(supports-color@8.1.1) + '@babel/preset-env': 7.26.0(@babel/core@7.26.0)(supports-color@8.1.1) '@babel/traverse': 7.26.4(supports-color@8.1.1) '@babel/types': 7.26.3 '@embroider/shared-internals': 1.8.3 @@ -15979,12 +15418,12 @@ snapshots: ember-auto-import@2.10.0(webpack@5.97.1): dependencies: - '@babel/core': 7.26.0 + '@babel/core': 7.26.0(supports-color@8.1.1) '@babel/plugin-proposal-class-properties': 7.18.6(@babel/core@7.26.0) '@babel/plugin-proposal-decorators': 7.25.9(@babel/core@7.26.0) '@babel/plugin-proposal-private-methods': 7.18.6(@babel/core@7.26.0) - '@babel/plugin-transform-class-static-block': 7.26.0(@babel/core@7.26.0) - '@babel/preset-env': 7.26.0(@babel/core@7.26.0) + '@babel/plugin-transform-class-static-block': 7.26.0(@babel/core@7.26.0)(supports-color@8.1.1) + '@babel/preset-env': 7.26.0(@babel/core@7.26.0)(supports-color@8.1.1) '@embroider/macros': 1.16.9 '@embroider/shared-internals': 2.8.1(supports-color@8.1.1) babel-loader: 8.4.1(@babel/core@7.26.0)(webpack@5.97.1) @@ -16032,17 +15471,17 @@ snapshots: ember-cli-babel@7.26.11: dependencies: - '@babel/core': 7.26.0 + '@babel/core': 7.26.0(supports-color@8.1.1) '@babel/helper-compilation-targets': 7.25.9 '@babel/plugin-proposal-class-properties': 7.18.6(@babel/core@7.26.0) '@babel/plugin-proposal-decorators': 7.25.9(@babel/core@7.26.0) '@babel/plugin-proposal-private-methods': 7.18.6(@babel/core@7.26.0) '@babel/plugin-proposal-private-property-in-object': 7.21.11(@babel/core@7.26.0) - '@babel/plugin-transform-modules-amd': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-modules-amd': 7.25.9(@babel/core@7.26.0)(supports-color@8.1.1) '@babel/plugin-transform-runtime': 7.25.9(@babel/core@7.26.0) '@babel/plugin-transform-typescript': 7.26.3(@babel/core@7.26.0) '@babel/polyfill': 7.12.1 - '@babel/preset-env': 7.26.0(@babel/core@7.26.0) + '@babel/preset-env': 7.26.0(@babel/core@7.26.0)(supports-color@8.1.1) '@babel/runtime': 7.12.18 amd-name-resolver: 1.3.1 babel-plugin-debug-macros: 0.3.4(@babel/core@7.26.0) @@ -16067,17 +15506,17 @@ snapshots: ember-cli-babel@8.2.0(@babel/core@7.26.0): dependencies: - '@babel/core': 7.26.0 + '@babel/core': 7.26.0(supports-color@8.1.1) '@babel/helper-compilation-targets': 7.25.9 '@babel/plugin-proposal-class-properties': 7.18.6(@babel/core@7.26.0) '@babel/plugin-proposal-decorators': 7.25.9(@babel/core@7.26.0) '@babel/plugin-proposal-private-methods': 7.18.6(@babel/core@7.26.0) '@babel/plugin-proposal-private-property-in-object': 7.21.11(@babel/core@7.26.0) - '@babel/plugin-transform-class-static-block': 7.26.0(@babel/core@7.26.0) - '@babel/plugin-transform-modules-amd': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-class-static-block': 7.26.0(@babel/core@7.26.0)(supports-color@8.1.1) + '@babel/plugin-transform-modules-amd': 7.25.9(@babel/core@7.26.0)(supports-color@8.1.1) '@babel/plugin-transform-runtime': 7.25.9(@babel/core@7.26.0) '@babel/plugin-transform-typescript': 7.26.3(@babel/core@7.26.0) - '@babel/preset-env': 7.26.0(@babel/core@7.26.0) + '@babel/preset-env': 7.26.0(@babel/core@7.26.0)(supports-color@8.1.1) '@babel/runtime': 7.12.18 amd-name-resolver: 1.3.1 babel-plugin-debug-macros: 0.3.4(@babel/core@7.26.0) @@ -16245,7 +15684,7 @@ snapshots: ember-cli-deploy-gzip@3.0.0(@babel/core@7.26.0)(eslint@8.57.1): dependencies: '@babel/eslint-parser': 7.25.9(@babel/core@7.26.0)(eslint@8.57.1) - '@babel/preset-env': 7.26.0(@babel/core@7.26.0) + '@babel/preset-env': 7.26.0(@babel/core@7.26.0)(supports-color@8.1.1) chalk: 4.1.2 core-object: 3.1.5 ember-cli-deploy-plugin: 0.2.9 @@ -16475,7 +15914,7 @@ snapshots: ember-cli-string-helpers@6.1.0: dependencies: - '@babel/core': 7.26.0 + '@babel/core': 7.26.0(supports-color@8.1.1) broccoli-funnel: 3.0.8 ember-cli-babel: 7.26.11 resolve: 1.22.8 @@ -16796,7 +16235,7 @@ snapshots: ember-eslint-parser@0.5.7(@babel/core@7.26.0)(eslint@8.57.1): dependencies: - '@babel/core': 7.26.0 + '@babel/core': 7.26.0(supports-color@8.1.1) '@babel/eslint-parser': 7.25.9(@babel/core@7.26.0)(eslint@8.57.1) '@glimmer/syntax': 0.92.3 content-tag: 2.0.3 @@ -16815,7 +16254,7 @@ snapshots: ember-exam@9.0.0(ember-qunit@8.1.1(@ember/test-helpers@3.3.1(@babel/core@7.26.0)(ember-source@5.11.1(@glimmer/component@1.1.2(@babel/core@7.26.0))(rsvp@4.8.5)(webpack@5.97.1))(webpack@5.97.1))(ember-source@5.11.1(@glimmer/component@1.1.2(@babel/core@7.26.0))(rsvp@4.8.5)(webpack@5.97.1))(qunit@2.23.1))(ember-source@5.11.1(@glimmer/component@1.1.2(@babel/core@7.26.0))(rsvp@4.8.5)(webpack@5.97.1))(qunit@2.23.1)(webpack@5.97.1): dependencies: - '@babel/core': 7.26.0 + '@babel/core': 7.26.0(supports-color@8.1.1) chalk: 5.3.0 cli-table3: 0.6.5 debug: 4.4.0(supports-color@8.1.1) @@ -16838,7 +16277,7 @@ snapshots: ember-exam@9.0.0(ember-qunit@8.1.1(@ember/test-helpers@4.0.4(@babel/core@7.26.0)(ember-source@5.11.1(@glimmer/component@1.1.2(@babel/core@7.26.0))(rsvp@4.8.5)(webpack@5.97.1)))(ember-source@5.11.1(@glimmer/component@1.1.2(@babel/core@7.26.0))(rsvp@4.8.5)(webpack@5.97.1))(qunit@2.23.1))(ember-source@5.11.1(@glimmer/component@1.1.2(@babel/core@7.26.0))(rsvp@4.8.5)(webpack@5.97.1))(qunit@2.23.1)(webpack@5.97.1): dependencies: - '@babel/core': 7.26.0 + '@babel/core': 7.26.0(supports-color@8.1.1) chalk: 5.3.0 cli-table3: 0.6.5 debug: 4.4.0(supports-color@8.1.1) @@ -16956,7 +16395,7 @@ snapshots: ember-intl@7.0.7(@ember/test-helpers@4.0.4(@babel/core@7.26.0)(ember-source@5.11.1(@glimmer/component@1.1.2(@babel/core@7.26.0))(rsvp@4.8.5)(webpack@5.97.1)))(webpack@5.97.1): dependencies: - '@babel/core': 7.26.0 + '@babel/core': 7.26.0(supports-color@8.1.1) '@formatjs/icu-messageformat-parser': 2.9.5 '@formatjs/intl': 2.10.15 broccoli-caching-writer: 3.0.3 @@ -17195,7 +16634,7 @@ snapshots: ember-source@5.11.1(@glimmer/component@1.1.2(@babel/core@7.26.0))(rsvp@4.8.5)(webpack@5.97.1): dependencies: - '@babel/core': 7.26.0 + '@babel/core': 7.26.0(supports-color@8.1.1) '@ember/edition-utils': 1.2.0 '@glimmer/compiler': 0.92.0 '@glimmer/component': 1.1.2(@babel/core@7.26.0) @@ -19158,7 +18597,7 @@ snapshots: istanbul-lib-instrument@5.2.1: dependencies: - '@babel/core': 7.26.0 + '@babel/core': 7.26.0(supports-color@8.1.1) '@babel/parser': 7.26.3 '@istanbuljs/schema': 0.1.3 istanbul-lib-coverage: 3.2.2 @@ -20714,7 +20153,7 @@ snapshots: remove-types@1.0.0: dependencies: - '@babel/core': 7.26.0 + '@babel/core': 7.26.0(supports-color@8.1.1) '@babel/plugin-syntax-decorators': 7.25.9(@babel/core@7.26.0) '@babel/plugin-transform-typescript': 7.26.3(@babel/core@7.26.0) prettier: 2.8.8 @@ -22505,7 +21944,7 @@ snapshots: workerpool@3.1.2: dependencies: - '@babel/core': 7.26.0 + '@babel/core': 7.26.0(supports-color@8.1.1) object-assign: 4.1.1 rsvp: 4.8.5 transitivePeerDependencies: From bc65b6c3e5c623d3e2d8807c70dbc8f1a7ecedb8 Mon Sep 17 00:00:00 2001 From: Stefan Topfstedt Date: Mon, 9 Dec 2024 16:41:23 -0800 Subject: [PATCH 16/18] adds "test" coverage for download button to course viz. not much we can test here - the download action itself is not testable. so we're checking for the presence of the d/l button only. --- .../course/visualize-instructor-session-type-graph.js | 6 ++++++ .../components/course/visualize-instructor-term-graph.js | 6 ++++++ .../components/course/visualize-instructors-graph.js | 6 ++++++ .../components/course/visualize-objectives-graph.js | 6 ++++++ .../components/course/visualize-session-type-graph.js | 6 ++++++ .../components/course/visualize-session-types-graph.js | 6 ++++++ .../page-objects/components/course/visualize-term-graph.js | 6 ++++++ .../components/course/visualize-vocabularies-graph.js | 6 ++++++ .../components/course/visualize-vocabulary-graph.js | 6 ++++++ .../course/visualize-instructor-session-type-graph-test.js | 1 + .../course/visualize-instructor-term-graph-test.js | 1 + .../components/course/visualize-instructors-graph-test.js | 1 + .../components/course/visualize-objectives-graph-test.js | 1 + .../components/course/visualize-session-type-graph-test.js | 1 + .../components/course/visualize-session-types-graph-test.js | 1 + .../components/course/visualize-term-graph-test.js | 1 + .../components/course/visualize-vocabularies-graph-test.js | 2 +- .../components/course/visualize-vocabulary-graph-test.js | 1 + 18 files changed, 63 insertions(+), 1 deletion(-) diff --git a/packages/ilios-common/addon-test-support/ilios-common/page-objects/components/course/visualize-instructor-session-type-graph.js b/packages/ilios-common/addon-test-support/ilios-common/page-objects/components/course/visualize-instructor-session-type-graph.js index 9ecd2fc6b9..b4e6ecf121 100644 --- a/packages/ilios-common/addon-test-support/ilios-common/page-objects/components/course/visualize-instructor-session-type-graph.js +++ b/packages/ilios-common/addon-test-support/ilios-common/page-objects/components/course/visualize-instructor-session-type-graph.js @@ -14,6 +14,12 @@ const definition = { }, dataTable: { scope: '[data-test-data-table]', + actions: { + scope: '[data-test-data-table-actions]', + download: { + scope: '[data-test-download-data]', + }, + }, header: { scope: 'thead', sessionType: { diff --git a/packages/ilios-common/addon-test-support/ilios-common/page-objects/components/course/visualize-instructor-term-graph.js b/packages/ilios-common/addon-test-support/ilios-common/page-objects/components/course/visualize-instructor-term-graph.js index a54428542a..3cfec3b9bb 100644 --- a/packages/ilios-common/addon-test-support/ilios-common/page-objects/components/course/visualize-instructor-term-graph.js +++ b/packages/ilios-common/addon-test-support/ilios-common/page-objects/components/course/visualize-instructor-term-graph.js @@ -15,6 +15,12 @@ const definition = { }, dataTable: { scope: '[data-test-data-table]', + actions: { + scope: '[data-test-data-table-actions]', + download: { + scope: '[data-test-download-data]', + }, + }, header: { scope: 'thead', vocabularyTerm: { diff --git a/packages/ilios-common/addon-test-support/ilios-common/page-objects/components/course/visualize-instructors-graph.js b/packages/ilios-common/addon-test-support/ilios-common/page-objects/components/course/visualize-instructors-graph.js index 70ce0dcb8a..70ac4af9c7 100644 --- a/packages/ilios-common/addon-test-support/ilios-common/page-objects/components/course/visualize-instructors-graph.js +++ b/packages/ilios-common/addon-test-support/ilios-common/page-objects/components/course/visualize-instructors-graph.js @@ -15,6 +15,12 @@ const definition = { }, dataTable: { scope: '[data-test-data-table]', + actions: { + scope: '[data-test-data-table-actions]', + download: { + scope: '[data-test-download-data]', + }, + }, header: { scope: 'thead', instructor: { diff --git a/packages/ilios-common/addon-test-support/ilios-common/page-objects/components/course/visualize-objectives-graph.js b/packages/ilios-common/addon-test-support/ilios-common/page-objects/components/course/visualize-objectives-graph.js index aed42e518e..f7035bce0a 100644 --- a/packages/ilios-common/addon-test-support/ilios-common/page-objects/components/course/visualize-objectives-graph.js +++ b/packages/ilios-common/addon-test-support/ilios-common/page-objects/components/course/visualize-objectives-graph.js @@ -19,6 +19,12 @@ const definition = { }, dataTable: { scope: '[data-test-data-table]', + actions: { + scope: '[data-test-data-table-actions]', + download: { + scope: '[data-test-download-data]', + }, + }, header: { scope: 'thead', percentage: { diff --git a/packages/ilios-common/addon-test-support/ilios-common/page-objects/components/course/visualize-session-type-graph.js b/packages/ilios-common/addon-test-support/ilios-common/page-objects/components/course/visualize-session-type-graph.js index 31f6b8a8b5..2430dfe428 100644 --- a/packages/ilios-common/addon-test-support/ilios-common/page-objects/components/course/visualize-session-type-graph.js +++ b/packages/ilios-common/addon-test-support/ilios-common/page-objects/components/course/visualize-session-type-graph.js @@ -15,6 +15,12 @@ const definition = { }, dataTable: { scope: '[data-test-data-table]', + actions: { + scope: '[data-test-data-table-actions]', + download: { + scope: '[data-test-download-data]', + }, + }, header: { scope: 'thead', vocabularyTerm: { diff --git a/packages/ilios-common/addon-test-support/ilios-common/page-objects/components/course/visualize-session-types-graph.js b/packages/ilios-common/addon-test-support/ilios-common/page-objects/components/course/visualize-session-types-graph.js index fbf83f345d..5e892ef595 100644 --- a/packages/ilios-common/addon-test-support/ilios-common/page-objects/components/course/visualize-session-types-graph.js +++ b/packages/ilios-common/addon-test-support/ilios-common/page-objects/components/course/visualize-session-types-graph.js @@ -15,6 +15,12 @@ const definition = { }, dataTable: { scope: '[data-test-data-table]', + actions: { + scope: '[data-test-data-table-actions]', + download: { + scope: '[data-test-download-data]', + }, + }, header: { scope: 'thead', sessionType: { diff --git a/packages/ilios-common/addon-test-support/ilios-common/page-objects/components/course/visualize-term-graph.js b/packages/ilios-common/addon-test-support/ilios-common/page-objects/components/course/visualize-term-graph.js index 21702acd81..4c0fc0c850 100644 --- a/packages/ilios-common/addon-test-support/ilios-common/page-objects/components/course/visualize-term-graph.js +++ b/packages/ilios-common/addon-test-support/ilios-common/page-objects/components/course/visualize-term-graph.js @@ -15,6 +15,12 @@ const definition = { }, dataTable: { scope: '[data-test-data-table]', + actions: { + scope: '[data-test-data-table-actions]', + download: { + scope: '[data-test-download-data]', + }, + }, header: { scope: 'thead', sessionType: { diff --git a/packages/ilios-common/addon-test-support/ilios-common/page-objects/components/course/visualize-vocabularies-graph.js b/packages/ilios-common/addon-test-support/ilios-common/page-objects/components/course/visualize-vocabularies-graph.js index 7c6509d2ab..70b7386a06 100644 --- a/packages/ilios-common/addon-test-support/ilios-common/page-objects/components/course/visualize-vocabularies-graph.js +++ b/packages/ilios-common/addon-test-support/ilios-common/page-objects/components/course/visualize-vocabularies-graph.js @@ -15,6 +15,12 @@ const definition = { }, dataTable: { scope: '[data-test-data-table]', + actions: { + scope: '[data-test-data-table-actions]', + download: { + scope: '[data-test-download-data]', + }, + }, header: { scope: 'thead', vocabulary: { diff --git a/packages/ilios-common/addon-test-support/ilios-common/page-objects/components/course/visualize-vocabulary-graph.js b/packages/ilios-common/addon-test-support/ilios-common/page-objects/components/course/visualize-vocabulary-graph.js index e484e2bc26..8681d14f95 100644 --- a/packages/ilios-common/addon-test-support/ilios-common/page-objects/components/course/visualize-vocabulary-graph.js +++ b/packages/ilios-common/addon-test-support/ilios-common/page-objects/components/course/visualize-vocabulary-graph.js @@ -15,6 +15,12 @@ const definition = { }, dataTable: { scope: '[data-test-data-table]', + actions: { + scope: '[data-test-data-table-actions]', + download: { + scope: '[data-test-download-data]', + }, + }, header: { scope: 'thead', term: { diff --git a/packages/test-app/tests/integration/components/course/visualize-instructor-session-type-graph-test.js b/packages/test-app/tests/integration/components/course/visualize-instructor-session-type-graph-test.js index fc955c37a0..fc0a24c69a 100644 --- a/packages/test-app/tests/integration/components/course/visualize-instructor-session-type-graph-test.js +++ b/packages/test-app/tests/integration/components/course/visualize-instructor-session-type-graph-test.js @@ -107,6 +107,7 @@ module( assert.strictEqual(component.chart.labels.length, 2); assert.strictEqual(component.chart.labels[0].text, 'Campaign'); assert.strictEqual(component.chart.labels[1].text, 'Standalone'); + assert.ok(component.dataTable.actions.download.isVisible); assert.strictEqual(component.dataTable.rows.length, 2); assert.strictEqual(component.dataTable.rows[0].sessionType, 'Campaign'); assert.strictEqual(component.dataTable.rows[0].sessions.links.length, 2); diff --git a/packages/test-app/tests/integration/components/course/visualize-instructor-term-graph-test.js b/packages/test-app/tests/integration/components/course/visualize-instructor-term-graph-test.js index 1737109fab..5edc122c41 100644 --- a/packages/test-app/tests/integration/components/course/visualize-instructor-term-graph-test.js +++ b/packages/test-app/tests/integration/components/course/visualize-instructor-term-graph-test.js @@ -121,6 +121,7 @@ module('Integration | Component | course/visualize-instructor-term-graph', funct assert.strictEqual(component.chart.labels.length, 2); assert.strictEqual(component.chart.labels[0].text, 'Vocabulary 1 - Standalone'); assert.strictEqual(component.chart.labels[1].text, 'Vocabulary 2 - Campaign'); + assert.ok(component.dataTable.actions.download.isVisible); assert.strictEqual(component.dataTable.rows[0].vocabularyTerm, 'Vocabulary 2 - Campaign'); assert.strictEqual(component.dataTable.rows[0].sessions.links.length, 2); assert.strictEqual(component.dataTable.rows[0].sessions.links[0].text, 'Aardvark'); diff --git a/packages/test-app/tests/integration/components/course/visualize-instructors-graph-test.js b/packages/test-app/tests/integration/components/course/visualize-instructors-graph-test.js index 4c7cc6ebab..f995ba0a50 100644 --- a/packages/test-app/tests/integration/components/course/visualize-instructors-graph-test.js +++ b/packages/test-app/tests/integration/components/course/visualize-instructors-graph-test.js @@ -96,6 +96,7 @@ module('Integration | Component | course/visualize-instructors-graph', function assert.strictEqual(component.chart.labels[1].text, 'Duke'); assert.strictEqual(component.chart.labels[2].text, 'William'); assert.strictEqual(component.chart.labels[3].text, 'Marie'); + assert.ok(component.dataTable.actions.download.isVisible); assert.strictEqual(component.dataTable.rows.length, 4); assert.strictEqual(component.dataTable.rows[0].instructor.text, 'Daisy'); assert.strictEqual(component.dataTable.rows[0].instructor.url, '/data/courses/1/instructors/2'); diff --git a/packages/test-app/tests/integration/components/course/visualize-objectives-graph-test.js b/packages/test-app/tests/integration/components/course/visualize-objectives-graph-test.js index f47c834bc2..6ec60d4c21 100644 --- a/packages/test-app/tests/integration/components/course/visualize-objectives-graph-test.js +++ b/packages/test-app/tests/integration/components/course/visualize-objectives-graph-test.js @@ -107,6 +107,7 @@ module('Integration | Component | course/visualize-objectives-graph', function ( assert.notOk(component.unlinkedObjectives.isPresent); assert.strictEqual(component.untaughtObjectives.items.length, 1); assert.strictEqual(component.untaughtObjectives.items[0].text, 'course objective 2'); + assert.ok(component.dataTable.actions.download.isVisible); assert.strictEqual(component.dataTable.header.percentage.text, 'Percentage'); assert.strictEqual(component.dataTable.header.objective.text, 'Course Objective'); assert.strictEqual(component.dataTable.header.competencies.text, 'Competencies'); diff --git a/packages/test-app/tests/integration/components/course/visualize-session-type-graph-test.js b/packages/test-app/tests/integration/components/course/visualize-session-type-graph-test.js index cf6e5706fc..f09eab231a 100644 --- a/packages/test-app/tests/integration/components/course/visualize-session-type-graph-test.js +++ b/packages/test-app/tests/integration/components/course/visualize-session-type-graph-test.js @@ -113,6 +113,7 @@ module('Integration | Component | course/visualize-session-type-graph', function assert.strictEqual(component.chart.labels.length, 2); assert.strictEqual(component.chart.labels[0].text, 'Vocabulary 1 - Standalone'); assert.strictEqual(component.chart.labels[1].text, 'Vocabulary 2 - Campaign'); + assert.ok(component.dataTable.actions.download.isVisible); assert.strictEqual(component.dataTable.rows.length, 3); assert.strictEqual(component.dataTable.rows[0].vocabularyTerm, 'Vocabulary 1 - Standalone'); assert.strictEqual(component.dataTable.rows[0].sessions.links.length, 1); diff --git a/packages/test-app/tests/integration/components/course/visualize-session-types-graph-test.js b/packages/test-app/tests/integration/components/course/visualize-session-types-graph-test.js index e5221b0f5e..d47a8af566 100644 --- a/packages/test-app/tests/integration/components/course/visualize-session-types-graph-test.js +++ b/packages/test-app/tests/integration/components/course/visualize-session-types-graph-test.js @@ -89,6 +89,7 @@ module('Integration | Component | course/visualize-session-types-graph', functio assert.strictEqual(component.chart.labels.length, 2); assert.strictEqual(component.chart.labels[0].text, 'Campaign'); assert.strictEqual(component.chart.labels[1].text, 'Standalone'); + assert.ok(component.dataTable.actions.download.isVisible); assert.strictEqual(component.dataTable.rows.length, 3); assert.strictEqual(component.dataTable.rows[0].sessionType.text, 'Prelude'); assert.strictEqual( diff --git a/packages/test-app/tests/integration/components/course/visualize-term-graph-test.js b/packages/test-app/tests/integration/components/course/visualize-term-graph-test.js index 766e5fb227..0c35e7b805 100644 --- a/packages/test-app/tests/integration/components/course/visualize-term-graph-test.js +++ b/packages/test-app/tests/integration/components/course/visualize-term-graph-test.js @@ -95,6 +95,7 @@ module('Integration | Component | course/visualize-term-graph', function (hooks) assert.strictEqual(component.chart.labels.length, 2); assert.strictEqual(component.chart.labels[0].text, 'Campaign'); assert.strictEqual(component.chart.labels[1].text, 'Standalone'); + assert.ok(component.dataTable.actions.download.isVisible); assert.strictEqual(component.dataTable.rows.length, 2); assert.strictEqual(component.dataTable.rows[0].sessionType, 'Campaign'); assert.strictEqual(component.dataTable.rows[0].sessions.links.length, 2); diff --git a/packages/test-app/tests/integration/components/course/visualize-vocabularies-graph-test.js b/packages/test-app/tests/integration/components/course/visualize-vocabularies-graph-test.js index 853b8b1a05..218cfb3ab6 100644 --- a/packages/test-app/tests/integration/components/course/visualize-vocabularies-graph-test.js +++ b/packages/test-app/tests/integration/components/course/visualize-vocabularies-graph-test.js @@ -89,7 +89,7 @@ module('Integration | Component | course/visualize-vocabularies-graph', function assert.strictEqual(component.chart.labels.length, 2); assert.strictEqual(component.chart.labels[0].text, 'Campaign'); assert.strictEqual(component.chart.labels[1].text, 'Standalone'); - + assert.ok(component.dataTable.actions.download.isVisible); assert.strictEqual(component.dataTable.rows.length, 2); assert.strictEqual(component.dataTable.rows[0].vocabulary.text, 'Campaign'); assert.strictEqual( diff --git a/packages/test-app/tests/integration/components/course/visualize-vocabulary-graph-test.js b/packages/test-app/tests/integration/components/course/visualize-vocabulary-graph-test.js index 1d4548ac33..d224af0aa5 100644 --- a/packages/test-app/tests/integration/components/course/visualize-vocabulary-graph-test.js +++ b/packages/test-app/tests/integration/components/course/visualize-vocabulary-graph-test.js @@ -95,6 +95,7 @@ module('Integration | Component | course/visualize-vocabulary-graph', function ( assert.strictEqual(component.chart.labels.length, 2); assert.strictEqual(component.chart.labels[0].text, 'Campaign'); assert.strictEqual(component.chart.labels[1].text, 'Standalone'); + assert.ok(component.dataTable.actions.download.isVisible); assert.strictEqual(component.dataTable.rows.length, 2); assert.strictEqual(component.dataTable.rows[0].term.text, 'Campaign'); assert.strictEqual(component.dataTable.rows[0].term.url, '/data/courses/1/terms/2'); From b9861d32a002c857eb0a96437ef0bf12a4132cf1 Mon Sep 17 00:00:00 2001 From: Stefan Topfstedt Date: Mon, 9 Dec 2024 16:46:09 -0800 Subject: [PATCH 17/18] rm unneccesary attribute from d/l buttons. the button won't be on the screen if there's no data, so disabling it is pointless. --- .../course/visualize-instructor-session-type-graph.hbs | 1 - .../addon/components/course/visualize-instructor-term-graph.hbs | 1 - .../addon/components/course/visualize-instructors-graph.hbs | 1 - .../addon/components/course/visualize-objectives-graph.hbs | 1 - .../addon/components/course/visualize-session-type-graph.hbs | 1 - .../addon/components/course/visualize-session-types-graph.hbs | 1 - .../addon/components/course/visualize-term-graph.hbs | 1 - .../addon/components/course/visualize-vocabularies-graph.hbs | 1 - .../addon/components/course/visualize-vocabulary-graph.hbs | 1 - 9 files changed, 9 deletions(-) diff --git a/packages/ilios-common/addon/components/course/visualize-instructor-session-type-graph.hbs b/packages/ilios-common/addon/components/course/visualize-instructor-session-type-graph.hbs index 2ec5355603..1026486cc1 100644 --- a/packages/ilios-common/addon/components/course/visualize-instructor-session-type-graph.hbs +++ b/packages/ilios-common/addon/components/course/visualize-instructor-session-type-graph.hbs @@ -29,7 +29,6 @@