Data update
| @ -6,21 +6,21 @@ | |||||||
| </script> | </script> | ||||||
| 
 | 
 | ||||||
| <div class="card" transition:fade id={'case-' + cardData.attribution_id}> | <div class="card" transition:fade id={'case-' + cardData.attribution_id}> | ||||||
| 	<!--div class="card-header"> | 	<div class="card-header"> | ||||||
| 		<div class="card-header-title"> | 		<div class="card-header-title"> | ||||||
| 			<h2 class="is-size-3">Don't cases have titles?</h2> | 			<h2 class="is-size-3">{cardData.Short_Title}</h2> | ||||||
|  | 		</div> | ||||||
| 	</div> | 	</div> | ||||||
| 	</div--> |  | ||||||
| 	<div class="card-image"> | 	<div class="card-image"> | ||||||
| 		<figure class="image"> | 		<figure class="image"> | ||||||
| 			<img src={`/images/${cardData.attribution_id}.jpg`} alt={cardData.image_credit} /> | 			<img src={`/images/${cardData.Attribution_ID}.png`} /> | ||||||
| 		</figure> | 		</figure> | ||||||
| 	</div> | 	</div> | ||||||
| 	<div class="card-content"> | 	<div class="card-content"> | ||||||
| 		<div class="content"> | 		<div class="content"> | ||||||
| 			<p>{utcFormat('%B %d, %Y')(cardData.attribution_date)}, {cardData.attribution_id}</p> | 			<p>{utcFormat('%B %d, %Y')(new Date(cardData.Attribution_Date))}</p> | ||||||
| 			<p><a href={cardData.attribution_url} target='_blank'>{cardData.source}</a></p> | 			<p><a href={cardData.Attribution_URL} target='_blank'>{cardData.source}</a></p> | ||||||
| 			<p>{cardData.short_description}</p> | 			<p>{cardData.Short_Description}</p> | ||||||
| 			<p> | 			<p> | ||||||
| 				<button class="button is-info is-small" on:click={sourceFilter.selectOne(cardData.source)} | 				<button class="button is-info is-small" on:click={sourceFilter.selectOne(cardData.source)} | ||||||
| 					>{cardData.source}</button | 					>{cardData.source}</button | ||||||
|  | |||||||
| @ -7,6 +7,7 @@ | |||||||
| <table class="table is-striped is-fullwidth"> | <table class="table is-striped is-fullwidth"> | ||||||
|     <thead> |     <thead> | ||||||
|         <tr> |         <tr> | ||||||
|  |             <td>Title</td> | ||||||
|             <td>Description</td> |             <td>Description</td> | ||||||
|             <td>Attribution date</td> |             <td>Attribution date</td> | ||||||
|             <td>Source</td> |             <td>Source</td> | ||||||
| @ -18,11 +19,14 @@ | |||||||
|         {#each cases as attrCase} |         {#each cases as attrCase} | ||||||
|         {#if attrCase.show} |         {#if attrCase.show} | ||||||
|             <tr> |             <tr> | ||||||
|                 <td>{attrCase.short_description}</td> |                 <td>{attrCase.Short_Title}</td> | ||||||
|                 <td>{utcFormat('%B %d, %Y')(attrCase.attribution_date)}</td> |                 <td>{attrCase.Short_Description}</td> | ||||||
|  |                 <td>{utcFormat('%B %d, %Y')(new Date(attrCase.Attribution_Date))}</td> | ||||||
|                 <td>{attrCase.source}</td> |                 <td>{attrCase.source}</td> | ||||||
|                 <td>{attrCase.source_category}</td> |                 <td>{attrCase.Source_Category}</td> | ||||||
|                 <td>{attrCase.actor_nation}</td> |                 <td>{#each attrCase.actor_nation as nation, i} | ||||||
|  |                     {attrCase.actor_nation.length != (i + 1) ? nation + ', ' : nation} | ||||||
|  |                     {/each}</td> | ||||||
|             </tr> |             </tr> | ||||||
|             {/if} |             {/if} | ||||||
|         {/each} |         {/each} | ||||||
|  | |||||||
| @ -16,8 +16,6 @@ | |||||||
| 	} from '../../stores/filters'; | 	} from '../../stores/filters'; | ||||||
| 
 | 
 | ||||||
| 	export let cases; | 	export let cases; | ||||||
| 	export let isMobile; |  | ||||||
| 	$: console.log(isMobile) |  | ||||||
| 
 | 
 | ||||||
| 	function handleButtonClick() { | 	function handleButtonClick() { | ||||||
| 		selectAllFilters(); | 		selectAllFilters(); | ||||||
|  | |||||||
| @ -33,38 +33,41 @@ | |||||||
| 		const response = await csv(`https://fiat-2024-processed-data.s3.us-west-2.amazonaws.com/Demo_Attribution_Data.csv`); | 		const response = await csv(`https://fiat-2024-processed-data.s3.us-west-2.amazonaws.com/Demo_Attribution_Data.csv`); | ||||||
| 		//const response = await csv(`${base}/Demo_Attribution_Data.csv`); | 		//const response = await csv(`${base}/Demo_Attribution_Data.csv`); | ||||||
| 		cases = response; | 		cases = response; | ||||||
|  |         cases = cases.filter(d => d.Attribution_ID != '') | ||||||
|         cases.forEach(d => { |         cases.forEach(d => { | ||||||
|             d.platform = splitString(d.platform) |             d.platform = splitString(d.Platforms) | ||||||
|             d.actor_nation = splitString(d.actor_nation) |             d.actor_nation = splitString(d.Actor_Nation) | ||||||
|             d.methods = splitString(d.methods) |             d.source = splitString(d.Source) | ||||||
|  |             d.methods = splitString(d.Methods) | ||||||
|             d.attribution_total_score = +d.attribution_total_score |             d.attribution_total_score = +d.attribution_total_score | ||||||
|             d.attribution_date = new Date(d.attribution_date) |             d.attribution_date = new Date(d.Attribution_Date) | ||||||
|             d.search = [d.short_description, d.platform, d.methods, d.source, d.source_nation, d.source_category].flat().join('__').toLowerCase() |             d.search = [d.Short_Description, d.Short_Title, d.platform, d.methods, d.Source, d.Source_Nation, d.Source_cCtegory].flat().join('__').toLowerCase() | ||||||
| 
 | 
 | ||||||
|             d.show = false |             d.show = false | ||||||
|         }) |         }) | ||||||
|  | 
 | ||||||
|         platformFilter.init(cases, 'platform'); |         platformFilter.init(cases, 'platform'); | ||||||
|         actorNationFilter.init(cases, 'actor_nation'); |         actorNationFilter.init(cases, 'actor_nation'); | ||||||
|         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') | ||||||
|         $attributionScoreFilter = attributionScoreDef; |         $attributionScoreFilter = attributionScoreDef; | ||||||
|          |          | ||||||
|         //console.log(cases.map(d => d.campaign)) |  | ||||||
| 	}); | 	}); | ||||||
| 
 | 
 | ||||||
|     $: if (cases) { |     $: if (cases) { | ||||||
|         cases = cases.map(d => ({ |         cases = cases.map(d => ({ | ||||||
|             ...d, |             ...d, | ||||||
|             show: haveOverlap($actorNationFilter, d.actor_nation)  |             show: haveOverlap($actorNationFilter, d.Actor_Nation)  | ||||||
|                 && haveOverlap($platformFilter, d.platform) |                 && haveOverlap($platformFilter, d.platform) | ||||||
|                 && 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) | ||||||
|                 && withinRange($attributionScoreFilter, d.attribution_total_score) |                 && withinRange($attributionScoreFilter, d.attribution_total_score) | ||||||
|                 && includesTextSearch($textSearchFilter, d.search) |                 && includesTextSearch($textSearchFilter, d.search) | ||||||
|         })) |         })) | ||||||
|     } |     } | ||||||
|  |     $: console.log(cases) | ||||||
| 
 | 
 | ||||||
|     let width = 1200 |     let width = 1200 | ||||||
|     let margin = { |     let margin = { | ||||||
|  | |||||||
							
								
								
									
										
											Двоичные данные
										
									
								
								static/images/1.png
									
									
									
									
									
										Обычный файл
									
								
							
							
						
						| После Ширина: | Высота: | Размер: 1.7 MiB | 
							
								
								
									
										
											Двоичные данные
										
									
								
								static/images/11.png
									
									
									
									
									
										Обычный файл
									
								
							
							
						
						| После Ширина: | Высота: | Размер: 181 KiB | 
							
								
								
									
										
											Двоичные данные
										
									
								
								static/images/12.png
									
									
									
									
									
										Обычный файл
									
								
							
							
						
						| После Ширина: | Высота: | Размер: 305 KiB | 
							
								
								
									
										
											Двоичные данные
										
									
								
								static/images/15.png
									
									
									
									
									
										Обычный файл
									
								
							
							
						
						| После Ширина: | Высота: | Размер: 1.3 MiB | 
							
								
								
									
										
											Двоичные данные
										
									
								
								static/images/16.png
									
									
									
									
									
										Обычный файл
									
								
							
							
						
						| После Ширина: | Высота: | Размер: 351 KiB | 
							
								
								
									
										
											Двоичные данные
										
									
								
								static/images/17.png
									
									
									
									
									
										Обычный файл
									
								
							
							
						
						| После Ширина: | Высота: | Размер: 388 KiB | 
							
								
								
									
										
											Двоичные данные
										
									
								
								static/images/18.png
									
									
									
									
									
										Обычный файл
									
								
							
							
						
						| После Ширина: | Высота: | Размер: 306 KiB | 
							
								
								
									
										
											Двоичные данные
										
									
								
								static/images/19.png
									
									
									
									
									
										Обычный файл
									
								
							
							
						
						| После Ширина: | Высота: | Размер: 300 KiB | 
							
								
								
									
										
											Двоичные данные
										
									
								
								static/images/2.png
									
									
									
									
									
										Обычный файл
									
								
							
							
						
						| После Ширина: | Высота: | Размер: 302 KiB | 
							
								
								
									
										
											Двоичные данные
										
									
								
								static/images/20.png
									
									
									
									
									
										Обычный файл
									
								
							
							
						
						| После Ширина: | Высота: | Размер: 308 KiB | 
							
								
								
									
										
											Двоичные данные
										
									
								
								static/images/21.png
									
									
									
									
									
										Обычный файл
									
								
							
							
						
						| После Ширина: | Высота: | Размер: 314 KiB | 
							
								
								
									
										
											Двоичные данные
										
									
								
								static/images/22.png
									
									
									
									
									
										Обычный файл
									
								
							
							
						
						| После Ширина: | Высота: | Размер: 425 KiB | 
							
								
								
									
										
											Двоичные данные
										
									
								
								static/images/23.png
									
									
									
									
									
										Обычный файл
									
								
							
							
						
						| После Ширина: | Высота: | Размер: 2.3 MiB | 
							
								
								
									
										
											Двоичные данные
										
									
								
								static/images/24.png
									
									
									
									
									
										Обычный файл
									
								
							
							
						
						| После Ширина: | Высота: | Размер: 284 KiB | 
							
								
								
									
										
											Двоичные данные
										
									
								
								static/images/25.png
									
									
									
									
									
										Обычный файл
									
								
							
							
						
						| После Ширина: | Высота: | Размер: 175 KiB | 
							
								
								
									
										
											Двоичные данные
										
									
								
								static/images/26.png
									
									
									
									
									
										Обычный файл
									
								
							
							
						
						| После Ширина: | Высота: | Размер: 527 KiB | 
							
								
								
									
										
											Двоичные данные
										
									
								
								static/images/27.png
									
									
									
									
									
										Обычный файл
									
								
							
							
						
						| После Ширина: | Высота: | Размер: 843 KiB | 
							
								
								
									
										
											Двоичные данные
										
									
								
								static/images/3.png
									
									
									
									
									
										Обычный файл
									
								
							
							
						
						| После Ширина: | Высота: | Размер: 644 KiB | 
							
								
								
									
										
											Двоичные данные
										
									
								
								static/images/4.png
									
									
									
									
									
										Обычный файл
									
								
							
							
						
						| После Ширина: | Высота: | Размер: 1.3 MiB | 
							
								
								
									
										
											Двоичные данные
										
									
								
								static/images/5.png
									
									
									
									
									
										Обычный файл
									
								
							
							
						
						| После Ширина: | Высота: | Размер: 177 KiB | 
							
								
								
									
										
											Двоичные данные
										
									
								
								static/images/6.png
									
									
									
									
									
										Обычный файл
									
								
							
							
						
						| После Ширина: | Высота: | Размер: 1.2 MiB | 
							
								
								
									
										
											Двоичные данные
										
									
								
								static/images/7.png
									
									
									
									
									
										Обычный файл
									
								
							
							
						
						| После Ширина: | Высота: | Размер: 26 KiB | 
							
								
								
									
										
											Двоичные данные
										
									
								
								static/images/8.png
									
									
									
									
									
										Обычный файл
									
								
							
							
						
						| После Ширина: | Высота: | Размер: 3.2 MiB | 
							
								
								
									
										
											Двоичные данные
										
									
								
								static/images/9.png
									
									
									
									
									
										Обычный файл
									
								
							
							
						
						| После Ширина: | Высота: | Размер: 1.6 MiB | 
 Maarten
						Maarten