Этот коммит содержится в:
Maarten 2024-10-10 21:57:23 +02:00
родитель 1ace6797dc
Коммит f228b63365
3 изменённых файлов: 16 добавлений и 2 удалений

Просмотреть файл

@ -11,6 +11,7 @@
sourceFilter, sourceFilter,
sourceCategoryFilter, sourceCategoryFilter,
methodFilter, methodFilter,
campaignFilter,
selectAllFilters, selectAllFilters,
attributionScoreFilter, attributionScoreFilter,
attributionScoreDef, attributionScoreDef,
@ -102,6 +103,12 @@
on:itemsAdded={(e) => methodFilter.select(e.detail)} on:itemsAdded={(e) => methodFilter.select(e.detail)}
on:itemsRemoved={(e) => methodFilter.unselect(e.detail)} on:itemsRemoved={(e) => methodFilter.unselect(e.detail)}
></Dropdown> ></Dropdown>
<Dropdown
items={addCount($campaignFilter, 'campaign', cases)}
label="Campaign"
on:itemsAdded={(e) => campaignFilter.select(e.detail)}
on:itemsRemoved={(e) => campaignFilter.unselect(e.detail)}
></Dropdown>
<DateRangeSlider <DateRangeSlider
value={timeDummyRange} value={timeDummyRange}
label="Date Range" label="Date Range"

Просмотреть файл

@ -20,6 +20,7 @@
sourceFilter, sourceFilter,
sourceCategoryFilter, sourceCategoryFilter,
methodFilter, methodFilter,
campaignFilter,
attributionScoreFilter, attributionScoreFilter,
attributionScoreDef, attributionScoreDef,
textSearchFilter, textSearchFilter,
@ -49,6 +50,7 @@
d.actor_nation = splitString(d.actor_nation); d.actor_nation = splitString(d.actor_nation);
d.source = splitString(d.source); d.source = splitString(d.source);
d.methods = splitString(d.methods); d.methods = splitString(d.methods);
d.campaign = splitString(d.campaign)
d.attribution_total_score = +d.attribution_score; d.attribution_total_score = +d.attribution_score;
d.attribution_date = new Date(d.attribution_date); d.attribution_date = new Date(d.attribution_date);
d.search = [ d.search = [
@ -67,7 +69,7 @@
d.show = false; d.show = false;
}); });
//console.log(cases.map(d => d.offline_mobilization)) console.log(cases.map(d => d.campaign))
maxAttribution = max(cases.map((d) => d.attribution_score)); maxAttribution = max(cases.map((d) => d.attribution_score));
@ -76,6 +78,7 @@
sourceFilter.init(cases, 'source'); sourceFilter.init(cases, 'source');
sourceCategoryFilter.init(cases, 'source_category'); sourceCategoryFilter.init(cases, 'source_category');
methodFilter.init(cases, 'methods'); methodFilter.init(cases, 'methods');
campaignFilter.init(cases, 'campaign')
$attributionScoreFilter = attributionScoreDef; $attributionScoreFilter = attributionScoreDef;
$timeRangeFilter = extent(cases.map((d) => new Date(d.attribution_date))); $timeRangeFilter = extent(cases.map((d) => new Date(d.attribution_date)));
//$timeRangeFilter = [new Date('2024-01-01'), max(cases.map((d) => new Date(d.attribution_date)))]; //$timeRangeFilter = [new Date('2024-01-01'), max(cases.map((d) => new Date(d.attribution_date)))];
@ -106,7 +109,6 @@
if ($page.url.searchParams.has('filters')) { if ($page.url.searchParams.has('filters')) {
const urlFilters = parseUrl($page.url.searchParams.get('filters')); const urlFilters = parseUrl($page.url.searchParams.get('filters'));
actorNationFilter.applyBoolArray(urlFilters.actorNations); actorNationFilter.applyBoolArray(urlFilters.actorNations);
platformFilter.applyBoolArray(urlFilters.platforms); platformFilter.applyBoolArray(urlFilters.platforms);
methodFilter.applyBoolArray(urlFilters.methods); methodFilter.applyBoolArray(urlFilters.methods);
@ -150,6 +152,7 @@
haveOverlap($sourceFilter, d.source) && haveOverlap($sourceFilter, d.source) &&
haveOverlap($sourceCategoryFilter, d.source_category) && haveOverlap($sourceCategoryFilter, d.source_category) &&
haveOverlap($methodFilter, d.methods) && haveOverlap($methodFilter, d.methods) &&
haveOverlap($campaignFilter, d.campaign) &&
withinRange($attributionScoreFilter, d.attribution_total_score) && withinRange($attributionScoreFilter, d.attribution_total_score) &&
withinRange($timeRangeFilter, d.attribution_date) && withinRange($timeRangeFilter, d.attribution_date) &&
includesTextSearch($textSearchFilter, d.search) includesTextSearch($textSearchFilter, d.search)

Просмотреть файл

@ -71,6 +71,8 @@ export const platformFilter = createInclusiveFilter();
export const methodFilter = createInclusiveFilter(); export const methodFilter = createInclusiveFilter();
export const campaignFilter = createInclusiveFilter();
export const sourceFilter = createInclusiveFilter(); export const sourceFilter = createInclusiveFilter();
export const sourceCategoryFilter = createInclusiveFilter(); export const sourceCategoryFilter = createInclusiveFilter();
@ -90,6 +92,7 @@ export const unselectAllFilters = (disinformantNation = true) => {
if (disinformantNation) actorNationFilter.unselectAll(); if (disinformantNation) actorNationFilter.unselectAll();
platformFilter.unselectAll(); platformFilter.unselectAll();
methodFilter.unselectAll(); methodFilter.unselectAll();
campaignFilter.unselectAll();
sourceFilter.unselectAll(); sourceFilter.unselectAll();
sourceCategoryFilter.unselectAll(); sourceCategoryFilter.unselectAll();
tagFilter.unselectAll(); tagFilter.unselectAll();
@ -101,6 +104,7 @@ export const selectAllFilters = (disinformantNation = true) => {
if (disinformantNation) actorNationFilter.selectAll(); if (disinformantNation) actorNationFilter.selectAll();
platformFilter.selectAll(); platformFilter.selectAll();
methodFilter.selectAll(); methodFilter.selectAll();
campaignFilter.selectAll();
sourceFilter.selectAll(); sourceFilter.selectAll();
sourceCategoryFilter.selectAll(); sourceCategoryFilter.selectAll();
tagFilter.selectAll(); tagFilter.selectAll();