Turning ub-movements-test repo into a Svelte project

This commit is contained in:
Ruben van de Ven 2024-04-26 15:10:05 +02:00
commit d59d300276
26 changed files with 8625 additions and 0 deletions

24
.gitignore vendored Normal file
View file

@ -0,0 +1,24 @@
# Logs
logs
*.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*
pnpm-debug.log*
lerna-debug.log*
node_modules
dist
dist-ssr
*.local
# Editor directories and files
.vscode/*
!.vscode/extensions.json
.idea
.DS_Store
*.suo
*.ntvs*
*.njsproj
*.sln
*.sw?

3
.vscode/extensions.json vendored Normal file
View file

@ -0,0 +1,3 @@
{
"recommendations": ["svelte.svelte-vscode"]
}

47
README.md Normal file
View file

@ -0,0 +1,47 @@
# Svelte + TS + Vite
This template should help get you started developing with Svelte and TypeScript in Vite.
## Recommended IDE Setup
[VS Code](https://code.visualstudio.com/) + [Svelte](https://marketplace.visualstudio.com/items?itemName=svelte.svelte-vscode).
## Need an official Svelte framework?
Check out [SvelteKit](https://github.com/sveltejs/kit#readme), which is also powered by Vite. Deploy anywhere with its serverless-first approach and adapt to various platforms, with out of the box support for TypeScript, SCSS, and Less, and easily-added support for mdsvex, GraphQL, PostCSS, Tailwind CSS, and more.
## Technical considerations
**Why use this over SvelteKit?**
- It brings its own routing solution which might not be preferable for some users.
- It is first and foremost a framework that just happens to use Vite under the hood, not a Vite app.
This template contains as little as possible to get started with Vite + TypeScript + Svelte, while taking into account the developer experience with regards to HMR and intellisense. It demonstrates capabilities on par with the other `create-vite` templates and is a good starting point for beginners dipping their toes into a Vite + Svelte project.
Should you later need the extended capabilities and extensibility provided by SvelteKit, the template has been structured similarly to SvelteKit so that it is easy to migrate.
**Why `global.d.ts` instead of `compilerOptions.types` inside `jsconfig.json` or `tsconfig.json`?**
Setting `compilerOptions.types` shuts out all other types not explicitly listed in the configuration. Using triple-slash references keeps the default TypeScript setting of accepting type information from the entire workspace, while also adding `svelte` and `vite/client` type information.
**Why include `.vscode/extensions.json`?**
Other templates indirectly recommend extensions via the README, but this file allows VS Code to prompt the user to install the recommended extension upon opening the project.
**Why enable `allowJs` in the TS template?**
While `allowJs: false` would indeed prevent the use of `.js` files in the project, it does not prevent the use of JavaScript syntax in `.svelte` files. In addition, it would force `checkJs: false`, bringing the worst of both worlds: not being able to guarantee the entire codebase is TypeScript, and also having worse typechecking for the existing JavaScript. In addition, there are valid use cases in which a mixed codebase may be relevant.
**Why is HMR not preserving my local component state?**
HMR state preservation comes with a number of gotchas! It has been disabled by default in both `svelte-hmr` and `@sveltejs/vite-plugin-svelte` due to its often surprising behavior. You can read the details [here](https://github.com/rixo/svelte-hmr#svelte-hmr).
If you have state that's important to retain within a component, consider creating an external store which would not be replaced by HMR.
```ts
// store.ts
// An extremely simple external store
import { writable } from 'svelte/store'
export default writable(0)
```

267
data/locaties.csv Normal file
View file

@ -0,0 +1,267 @@
Library Name;Library Code;Location Name;Location Code;Adres;Locatie
Allard Pierson Archaeological Collection;APM;Allard Pierson Archaeological Collection;APM;Oude Turfmarkt 129;52.3684642, 4.8932426
Allard Pierson Archaeological Collection;APM;Exhibition;EXHI;Oude Turfmarkt 129;52.3684642, 4.8932426
Allard Pierson Archaeological Collection;APM;UNASSIGNED location;UNASSIGNED;Oude Turfmarkt 129;52.3684642, 4.8932426
Allard Pierson Depot;OTM;Allard Pierson Depot AP21;AP21;Meibergdreef 29;52.29264,4.95835
Allard Pierson Depot;OTM;Allard Pierson Depot AP3;AP3;Meibergdreef 29;52.29264,4.95835
Allard Pierson Depot;OTM;Allard Pierson Depot SB3;SB3;Meibergdreef 29;52.29264,4.95835
Allard Pierson Depot;OTM;Allard Pierson Depot SB3 Kluis;SB3-Kluis;Meibergdreef 29;52.29264,4.95835
Allard Pierson Depot;OTM;Allard Pierson Depot SB4;SB4;Meibergdreef 29;52.29264,4.95835
Allard Pierson Depot;OTM;Allard Pierson Depot VA3;VA3;Meibergdreef 29;52.29264,4.95835
Allard Pierson Depot;OTM;Allard Pierson Depot VA4;VA4;Meibergdreef 29;52.29264,4.95835
Allard Pierson Depot;OTM;Allard Pierson Depot VV3;VV3;Meibergdreef 29;52.29264,4.95835
Allard Pierson Depot;OTM;Allard Pierson Depot VV4;VV4;Meibergdreef 29;52.29264,4.95835
Allard Pierson Depot;OTM;None;I2;Meibergdreef 29;52.29264,4.95835
Allard Pierson Depot;OTM;Tijdelijk in Reading Room;RR;Meibergdreef 29;52.29264,4.95835
Allard Pierson Depot;OTM;UNASSIGNED location;UNASSIGNED;Meibergdreef 29;52.29264,4.95835
Allard Pierson Handbibliotheek;BC;otm-ibl;BCIBL;Oude Turfmarkt 129;52.3684642, 4.8932426
Allard Pierson Handbibliotheek;BC;AP-Archeologie;APA;Oude Turfmarkt 129;52.3684642, 4.8932426
Allard Pierson Handbibliotheek;BC;AP-BKR;APB;Oude Turfmarkt 129;52.3684642, 4.8932426
Allard Pierson Handbibliotheek;BC;AP-Computermuseum;APC;Oude Turfmarkt 129;52.3684642, 4.8932426
Allard Pierson Handbibliotheek;BC;AP-Handschriften;APH;Oude Turfmarkt 129;52.3684642, 4.8932426
Allard Pierson Handbibliotheek;BC;AP-Universiteitsgeschiedenis;APU;Oude Turfmarkt 129;52.3684642, 4.8932426
Allard Pierson Handbibliotheek;BC;Allard Pierson Kaartenzaal;KRTZL;Oude Turfmarkt 129;52.3684642, 4.8932426
Allard Pierson Handbibliotheek;BC;Allard Pierson Onderzoekzaal;BCOZL;Oude Turfmarkt 129;52.3684642, 4.8932426
Allard Pierson Handbibliotheek;BC;Exhibition;EXHI;Oude Turfmarkt 129;52.3684642, 4.8932426
Allard Pierson Handbibliotheek;BC;None;None;Oude Turfmarkt 129;52.3684642, 4.8932426
Allard Pierson Handbibliotheek;BC;Randapparatuur;HBAPP;Oude Turfmarkt 129;52.3684642, 4.8932426
Allard Pierson Handbibliotheek;BC;UNASSIGNED location;UNASSIGNED;Oude Turfmarkt 129;52.3684642, 4.8932426
Artis Bibliotheek;ARTIS;Artis Bibliotheek 242;242;Plantage Middenlaan 45;52.3655771, 4.9147693
Artis Bibliotheek;ARTIS;Artis Bibliotheek AB;AB;Plantage Middenlaan 45;52.3655771, 4.9147693
Artis Bibliotheek;ARTIS;Artis Bibliotheek CROWN;CROWN;Plantage Middenlaan 45;52.3655771, 4.9147693
Artis Bibliotheek;ARTIS;Artis Bibliotheek OTM;OTM;Plantage Middenlaan 45;52.3655771, 4.9147693
Artis Bibliotheek;ARTIS;Exhibition;EXHI;Plantage Middenlaan 45;52.3655771, 4.9147693
Artis Bibliotheek;ARTIS;UNASSIGNED location;UNASSIGNED;Plantage Middenlaan 45;52.3655771, 4.9147693
BORR-IBL Resource Sharing Library ILL;RES_SHARE_ILL;Borrowing Resource Sharing Requests ILL;OUT_RS_ILL;;
BORR-IBL Resource Sharing Library ILL;RES_SHARE_ILL;Lending Resource Sharing Requests ILL;IN_RS_ILL;;
BORR-IBL Resource Sharing Library ILL;RES_SHARE_ILL;None;ResourceLocated;;
BORR-IBL Resource Sharing Library ILL;RES_SHARE_ILL;PCHH-ILL;PCHH-ILL;;
Bushuis - pickup location;BHBPU;Exhibition;EXHI;Kloveniersburgwal 48;52.3707822, 4.8981663
Bushuis - pickup location;BHBPU;UNASSIGNED location;UNASSIGNED;Kloveniersburgwal 48;52.3707822, 4.8981663
CEDLA;CEDLA;CEDLA - IBL;CEDLA-IBL;Roetersstraat 33,;52.3623095, 4.9113548
CEDLA;CEDLA;Centrum voor Studie en Documentatie Latijns-Amerika;174;Roetersstraat 33,;52.3623095, 4.9113548
CEDLA;CEDLA;Exhibition;EXHI;Roetersstraat 33,;52.3623095, 4.9113548
CEDLA;CEDLA;None;174:;Roetersstraat 33,;52.3623095, 4.9113548
CEDLA;CEDLA;UNASSIGNED location;UNASSIGNED;Roetersstraat 33,;52.3623095, 4.9113548
GW-collecties UB;UBGW;Alfa Informatica;291;Singel 425;52.3676855, 4.8897127
GW-collecties UB;UBGW;Algemeen;116;Singel 425;52.3676855, 4.8897127
GW-collecties UB;UBGW;Algemene literatuurwetenschap;112;Singel 425;52.3676855, 4.8897127
GW-collecties UB;UBGW;Algemene taalwetenschap;110;Singel 425;52.3676855, 4.8897127
GW-collecties UB;UBGW;Amerika Instituut;173;Singel 425;52.3676855, 4.8897127
GW-collecties UB;UBGW;Bronnenkamer;601;Singel 425;52.3676855, 4.8897127
GW-collecties UB;UBGW;Byzantinologie - Nieuwgrieks;107;Singel 425;52.3676855, 4.8897127
GW-collecties UB;UBGW;Centrum voor Studie en Documentatie Latijns-Amerika;174;Singel 425;52.3676855, 4.8897127
GW-collecties UB;UBGW;Collectie Esthetica;127;Singel 425;52.3676855, 4.8897127
GW-collecties UB;UBGW;Culturele Studies;311;Singel 425;52.3676855, 4.8897127
GW-collecties UB;UBGW;Duits;117;Singel 425;52.3676855, 4.8897127
GW-collecties UB;UBGW;Engels;115;Singel 425;52.3676855, 4.8897127
GW-collecties UB;UBGW;Europese studies;301;Singel 425;52.3676855, 4.8897127
GW-collecties UB;UBGW;Exhibition;EXHI;Singel 425;52.3676855, 4.8897127
GW-collecties UB;UBGW;Fonetiek;132;Singel 425;52.3676855, 4.8897127
GW-collecties UB;UBGW;Frans/Roemeens;119;Singel 425;52.3676855, 4.8897127
GW-collecties UB;UBGW;Fries;114;Singel 425;52.3676855, 4.8897127
GW-collecties UB;UBGW;Geschiedenis;138;Singel 425;52.3676855, 4.8897127
GW-collecties UB;UBGW;Hongaars;123;Singel 425;52.3676855, 4.8897127
GW-collecties UB;UBGW;Instituut Moderne Nabije Oosten (IMNO);105;Singel 425;52.3676855, 4.8897127
GW-collecties UB;UBGW;Italiaans;120;Singel 425;52.3676855, 4.8897127
GW-collecties UB;UBGW;Juda Palache instituut;106;Singel 425;52.3676855, 4.8897127
GW-collecties UB;UBGW;Klassieken & Archeologie;101;Singel 425;52.3676855, 4.8897127
GW-collecties UB;UBGW;Kunstgeschiedenis;128;Singel 425;52.3676855, 4.8897127
GW-collecties UB;UBGW;Kunstgeschiedenis - magazijn;128M;Singel 425;52.3676855, 4.8897127
GW-collecties UB;UBGW;Mediastudies & Theaterwetenschap;125;Singel 425;52.3676855, 4.8897127
GW-collecties UB;UBGW;Muziekwetenschap;131;Singel 425;52.3676855, 4.8897127
GW-collecties UB;UBGW;Neerlandistiek;113;Singel 425;52.3676855, 4.8897127
GW-collecties UB;UBGW;Neolatijn;103;Singel 425;52.3676855, 4.8897127
GW-collecties UB;UBGW;None;None;Singel 425;52.3676855, 4.8897127
GW-collecties UB;UBGW;Oosteuropese studies;172;Singel 425;52.3676855, 4.8897127
GW-collecties UB;UBGW;Papyrologie ruimte E2.01;PAPY;Singel 425;52.3676855, 4.8897127
GW-collecties UB;UBGW;Portugees;122;Singel 425;52.3676855, 4.8897127
GW-collecties UB;UBGW;Scandinavistiek, incl. Fins;118;Singel 425;52.3676855, 4.8897127
GW-collecties UB;UBGW;Slavistiek;104;Singel 425;52.3676855, 4.8897127
GW-collecties UB;UBGW;Spaans;121;Singel 425;52.3676855, 4.8897127
GW-collecties UB;UBGW;Study room A1.01;A101;Singel 425;52.3676855, 4.8897127
GW-collecties UB;UBGW;Taalstudie;600;Singel 425;52.3676855, 4.8897127
GW-collecties UB;UBGW;Temporary not available;UNAV;Singel 425;52.3676855, 4.8897127
GW-collecties UB;UBGW;Theologie en Religiestudies;100;Singel 425;52.3676855, 4.8897127
GW-collecties UB;UBGW;UBGW Tijdschriften;GWSerials;Singel 425;52.3676855, 4.8897127
GW-collecties UB;UBGW;UNASSIGNED location;UNASSIGNED;Singel 425;52.3676855, 4.8897127
GW-collecties UB;UBGW;Vertaalwetenschap;306;Singel 425;52.3676855, 4.8897127
GW-collecties UB;UBGW;Werkgroepkast - ruimte E 2.01;WERK;Singel 425;52.3676855, 4.8897127
GW-collecties UB;UBGW;Wijsbegeerte;126;Singel 425;52.3676855, 4.8897127
GW-collecties UB;UBGW;Zuidafrikaans;279;Singel 425;52.3676855, 4.8897127
IViR;IVIR;Exhibition;EXHI;Nieuwe Achtergracht 166;52.3631403, 4.9122407
IViR;IVIR;Instituut voor Informatierecht (IVIR);312;Nieuwe Achtergracht 166;52.3631403, 4.9122407
IViR;IVIR;UNASSIGNED location;UNASSIGNED;Nieuwe Achtergracht 166;52.3631403, 4.9122407
IWO-depot;IWO;IWO (HvA 1e verdieping);IH1;Meibergdreef 29;52.29264,4.95835
IWO-depot;IWO;temporary collection conversion UvA;999;Meibergdreef 29;52.29264,4.95835
IWO-depot;IWO;Artis Bibliotheek;ARTIS;Meibergdreef 29;52.29264,4.95835
IWO-depot;IWO;Exhibition;EXHI;Meibergdreef 29;52.29264,4.95835
IWO-depot;IWO;IBL-OUT;IBL-OUT;Meibergdreef 29;52.29264,4.95835
IWO-depot;IWO;IWO I1;I1;Meibergdreef 29;52.29264,4.95835
IWO-depot;IWO;IWO I2;I2;Meibergdreef 29;52.29264,4.95835
IWO-depot;IWO;IWO I3;I3;Meibergdreef 29;52.29264,4.95835
IWO-depot;IWO;IWO IBL;IWO-IBL;Meibergdreef 29;52.29264,4.95835
IWO-depot;IWO;IWO Verplaatsing;IWO-TEMP;Meibergdreef 29;52.29264,4.95835
IWO-depot;IWO;IWO tbv grote formaten;I1F;Meibergdreef 29;52.29264,4.95835
IWO-depot;IWO;Inzage op IWO wegens groot formaat;I2F;Meibergdreef 29;52.29264,4.95835
IWO-depot;IWO;Muziek Centrum Nederland;MCN;Meibergdreef 29;52.29264,4.95835
IWO-depot;IWO;None;115;Meibergdreef 29;52.29264,4.95835
IWO-depot;IWO;None;242;Meibergdreef 29;52.29264,4.95835
IWO-depot;IWO;None;IWO-BC;Meibergdreef 29;52.29264,4.95835
IWO-depot;IWO;None;None;Meibergdreef 29;52.29264,4.95835
IWO-depot;IWO;None;UBM: Obr. 012 168;Meibergdreef 29;52.29264,4.95835
IWO-depot;IWO;None;UBM: Obr. FOL 003 960;Meibergdreef 29;52.29264,4.95835
IWO-depot;IWO;None;UBM: Obr. FOL 004 013;Meibergdreef 29;52.29264,4.95835
IWO-depot;IWO;None;UBM: W;Meibergdreef 29;52.29264,4.95835
IWO-depot;IWO;None;music;Meibergdreef 29;52.29264,4.95835
IWO-depot;IWO;TIN;TIN;Meibergdreef 29;52.29264,4.95835
IWO-depot;IWO;Temporary location MCN1 (do not use);MCN1;Meibergdreef 29;52.29264,4.95835
IWO-depot;IWO;Temporary location MCN2 (do not use);MCN2;Meibergdreef 29;52.29264,4.95835
IWO-depot;IWO;UNASSIGNED location;UNASSIGNED;Meibergdreef 29;52.29264,4.95835
Juridische Bibliotheek;JB;Apparatuur;JB-APP;Nieuwe Achtergracht 166;52.3631403, 4.9122407
Juridische Bibliotheek;JB;Buitenlands Recht en Internationaal Privaatrecht;187;Nieuwe Achtergracht 166;52.3631403, 4.9122407
Juridische Bibliotheek;JB;Criminologisch instituut Bonger;276;Nieuwe Achtergracht 166;52.3631403, 4.9122407
Juridische Bibliotheek;JB;Exhibition;EXHI;Nieuwe Achtergracht 166;52.3631403, 4.9122407
Juridische Bibliotheek;JB;Internationaal Recht;171;Nieuwe Achtergracht 166;52.3631403, 4.9122407
Juridische Bibliotheek;JB;Internationaal recht;189;Nieuwe Achtergracht 166;52.3631403, 4.9122407
Juridische Bibliotheek;JB;JB - IBL;JB-IBL;Nieuwe Achtergracht 166;52.3631403, 4.9122407
Juridische Bibliotheek;JB;JB - Tijdschriften;JBSerials;Nieuwe Achtergracht 166;52.3631403, 4.9122407
Juridische Bibliotheek;JB;Juridische Bibliotheek;184;Nieuwe Achtergracht 166;52.3631403, 4.9122407
Juridische Bibliotheek;JB;None;None;Nieuwe Achtergracht 166;52.3631403, 4.9122407
Juridische Bibliotheek;JB;Strafrecht;185;Nieuwe Achtergracht 166;52.3631403, 4.9122407
Juridische Bibliotheek;JB;Tijdelijk uitleenbaar;JBTEMP;Nieuwe Achtergracht 166;52.3631403, 4.9122407
Juridische Bibliotheek;JB;UNASSIGNED location;UNASSIGNED;Nieuwe Achtergracht 166;52.3631403, 4.9122407
Library Learning Centre Roeterseiland;REC;Apparatuur;LLC-RAND;Roetersstraat 11;52.3638465, 4.9112789
Library Learning Centre Roeterseiland;REC;Exhibition;EXHI;Roetersstraat 11;52.3638465, 4.9112789
Library Learning Centre Roeterseiland;REC;IBL;LLC-IBL;Roetersstraat 11;52.3638465, 4.9112789
Library Learning Centre Roeterseiland;REC;LLC REC Studieboeken;LLC-SB;Roetersstraat 11;52.3638465, 4.9112789
Library Learning Centre Roeterseiland;REC;LLC REC Testmaterialen;LLC-TEST;Roetersstraat 11;52.3638465, 4.9112789
Library Learning Centre Roeterseiland;REC;LLCREC - Tijdschriften;RECSerials;Roetersstraat 11;52.3638465, 4.9112789
Library Learning Centre Roeterseiland;REC;None;None;Roetersstraat 11;52.3638465, 4.9112789
Library Learning Centre Roeterseiland;REC;Roeterseiland;333;Roetersstraat 11;52.3638465, 4.9112789
Library Learning Centre Roeterseiland;REC;Showcase UpForGrabs;TMP_EXHB_R;Roetersstraat 11;52.3638465, 4.9112789
Library Learning Centre Roeterseiland;REC;Tijdelijk uitleenbaar;TEMP;Roetersstraat 11;52.3638465, 4.9112789
Library Learning Centre Roeterseiland;REC;UNASSIGNED location;UNASSIGNED;Roetersstraat 11;52.3638465, 4.9112789
Medische Bibliotheek;AMC;AMC - IBL;AMC-IBL;Meibergdreef 9;52.2948832, 4.9579824
Medische Bibliotheek;AMC;Exhibition;EXHI;Meibergdreef 9;52.2948832, 4.9579824
Medische Bibliotheek;AMC;Medische Bibliotheek AMC;215;Meibergdreef 9;52.2948832, 4.9579824
Medische Bibliotheek;AMC;UNASSIGNED location;UNASSIGNED;Meibergdreef 9;52.2948832, 4.9579824
P.C.Hoofthuis;PCHH;Bibliotheek Bungehuis;300;Spuistraat 134;52.3741032, 4.8898317
P.C.Hoofthuis;PCHH;Magazijn;MAG;Spuistraat 134;52.3741032, 4.8898317
P.C.Hoofthuis;PCHH;temporary collection conversion UvA;999;Spuistraat 134;52.3741032, 4.8898317
P.C.Hoofthuis;PCHH;Alfa Informatica;291;Spuistraat 134;52.3741032, 4.8898317
P.C.Hoofthuis;PCHH;Algemeen;116;Spuistraat 134;52.3741032, 4.8898317
P.C.Hoofthuis;PCHH;Algemene literatuurwetenschap;112;Spuistraat 134;52.3741032, 4.8898317
P.C.Hoofthuis;PCHH;Algemene taalwetenschap;110;Spuistraat 134;52.3741032, 4.8898317
P.C.Hoofthuis;PCHH;Amerika Instituut;173;Spuistraat 134;52.3741032, 4.8898317
P.C.Hoofthuis;PCHH;Apparatuur;PCHH-RAND;Spuistraat 134;52.3741032, 4.8898317
P.C.Hoofthuis;PCHH;Bronnenkamer;601;Spuistraat 134;52.3741032, 4.8898317
P.C.Hoofthuis;PCHH;Byzantinologie - Nieuwgrieks;107;Spuistraat 134;52.3741032, 4.8898317
P.C.Hoofthuis;PCHH;Centrum voor Studie en Documentatie Latijns-Amerika;174;Spuistraat 134;52.3741032, 4.8898317
P.C.Hoofthuis;PCHH;Collectie Esthetica;127;Spuistraat 134;52.3741032, 4.8898317
P.C.Hoofthuis;PCHH;Culturele Studies;311;Spuistraat 134;52.3741032, 4.8898317
P.C.Hoofthuis;PCHH;Duits;117;Spuistraat 134;52.3741032, 4.8898317
P.C.Hoofthuis;PCHH;Engels;115;Spuistraat 134;52.3741032, 4.8898317
P.C.Hoofthuis;PCHH;Europese studies;301;Spuistraat 134;52.3741032, 4.8898317
P.C.Hoofthuis;PCHH;Exhibition;EXHI;Spuistraat 134;52.3741032, 4.8898317
P.C.Hoofthuis;PCHH;Fonetiek;132;Spuistraat 134;52.3741032, 4.8898317
P.C.Hoofthuis;PCHH;Frans/Roemeens;119;Spuistraat 134;52.3741032, 4.8898317
P.C.Hoofthuis;PCHH;Fries;114;Spuistraat 134;52.3741032, 4.8898317
P.C.Hoofthuis;PCHH;Geschiedenis;138;Spuistraat 134;52.3741032, 4.8898317
P.C.Hoofthuis;PCHH;Hongaars;123;Spuistraat 134;52.3741032, 4.8898317
P.C.Hoofthuis;PCHH;Instituut Moderne Nabije Oosten (IMNO);105;Spuistraat 134;52.3741032, 4.8898317
P.C.Hoofthuis;PCHH;Italiaans;120;Spuistraat 134;52.3741032, 4.8898317
P.C.Hoofthuis;PCHH;Juda Palache instituut;106;Spuistraat 134;52.3741032, 4.8898317
P.C.Hoofthuis;PCHH;Klassieken & Archeologie;101;Spuistraat 134;52.3741032, 4.8898317
P.C.Hoofthuis;PCHH;Kunstgeschiedenis;128;Spuistraat 134;52.3741032, 4.8898317
P.C.Hoofthuis;PCHH;Mediastudies & Theaterwetenschap;125;Spuistraat 134;52.3741032, 4.8898317
P.C.Hoofthuis;PCHH;Muziekwetenschap;131;Spuistraat 134;52.3741032, 4.8898317
P.C.Hoofthuis;PCHH;Neerlandistiek;113;Spuistraat 134;52.3741032, 4.8898317
P.C.Hoofthuis;PCHH;Neolatijn;103;Spuistraat 134;52.3741032, 4.8898317
P.C.Hoofthuis;PCHH;None;128M;Spuistraat 134;52.3741032, 4.8898317
P.C.Hoofthuis;PCHH;None;None;Spuistraat 134;52.3741032, 4.8898317
P.C.Hoofthuis;PCHH;Oosteuropese studies;172;Spuistraat 134;52.3741032, 4.8898317
P.C.Hoofthuis;PCHH;PCHH - IBL;PCHH-IBL;Spuistraat 134;52.3741032, 4.8898317
P.C.Hoofthuis;PCHH;PCHH - Tijdschriften;PCHHSerial;Spuistraat 134;52.3741032, 4.8898317
P.C.Hoofthuis;PCHH;Portugees;122;Spuistraat 134;52.3741032, 4.8898317
P.C.Hoofthuis;PCHH;Scandinavistiek, incl. Fins;118;Spuistraat 134;52.3741032, 4.8898317
P.C.Hoofthuis;PCHH;Slavistiek;104;Spuistraat 134;52.3741032, 4.8898317
P.C.Hoofthuis;PCHH;Spaans;121;Spuistraat 134;52.3741032, 4.8898317
P.C.Hoofthuis;PCHH;Taalstudie;600;Spuistraat 134;52.3741032, 4.8898317
P.C.Hoofthuis;PCHH;Temporary not available;UNAV;Spuistraat 134;52.3741032, 4.8898317
P.C.Hoofthuis;PCHH;Theologie en Religiestudies;100;Spuistraat 134;52.3741032, 4.8898317
P.C.Hoofthuis;PCHH;UNASSIGNED location;UNASSIGNED;Spuistraat 134;52.3741032, 4.8898317
P.C.Hoofthuis;PCHH;Vertaalwetenschap;306;Spuistraat 134;52.3741032, 4.8898317
P.C.Hoofthuis;PCHH;Werkgroepkast - 1e etage;WERK;Spuistraat 134;52.3741032, 4.8898317
P.C.Hoofthuis;PCHH;Wijsbegeerte;126;Spuistraat 134;52.3741032, 4.8898317
P.C.Hoofthuis;PCHH;Zuidafrikaans;279;Spuistraat 134;52.3741032, 4.8898317
Resource Sharing Library;RES_SHARE;Borrowing Resource Sharing Requests;OUT_RS_REQ;;
Resource Sharing Library;RES_SHARE;Lending Resource Sharing Requests;IN_RS_REQ;;
Resource Sharing Library;RES_SHARE;None;ResourceLocated;;
Sciencepark Bibliotheek;BETA;Amstel instituut;341;Science Park 904;52.3544941, 4.9557553
Sciencepark Bibliotheek;BETA;Apparatuur;BETA-RAND;Science Park 904;52.3544941, 4.9557553
Sciencepark Bibliotheek;BETA;BETA - IBL;BETA-IBL;Science Park 904;52.3544941, 4.9557553
Sciencepark Bibliotheek;BETA;BETA Bibliotheek;450;Science Park 904;52.3544941, 4.9557553
Sciencepark Bibliotheek;BETA;Bibliotheek Biologisch Centrum Anna's Hoeve;302;Science Park 904;52.3544941, 4.9557553
Sciencepark Bibliotheek;BETA;Exhibition;EXHI;Science Park 904;52.3544941, 4.9557553
Sciencepark Bibliotheek;BETA;Hortus;303;Science Park 904;52.3544941, 4.9557553
Sciencepark Bibliotheek;BETA;Logica;253;Science Park 904;52.3544941, 4.9557553
Sciencepark Bibliotheek;BETA;None;None;Science Park 904;52.3544941, 4.9557553
Sciencepark Bibliotheek;BETA;None;Verpl;Science Park 904;52.3544941, 4.9557553
Sciencepark Bibliotheek;BETA;Sciencepark Studieboeken;SP-SB;Science Park 904;52.3544941, 4.9557553
Sciencepark Bibliotheek;BETA;Sciencepark Tijdschriften;SPSerials;Science Park 904;52.3544941, 4.9557553
Sciencepark Bibliotheek;BETA;Showcase UpForGrabs;TMP_EXHB_B;Science Park 904;52.3544941, 4.9557553
Sciencepark Bibliotheek;BETA;Sterrenkunde en Informatica;263;Science Park 904;52.3544941, 4.9557553
Sciencepark Bibliotheek;BETA;UNASSIGNED location;UNASSIGNED;Science Park 904;52.3544941, 4.9557553
Sciencepark Bibliotheek;BETA;Wiskunde;254;Science Park 904;52.3544941, 4.9557553
Sciencepark Bibliotheek;BETA;Wiskunde en Informatica;307;Science Park 904;52.3544941, 4.9557553
UB Singel;UBB;Apparatuur;UBB-RAND;Singel 425;52.3676855, 4.8897127
UB Singel;UBB;Exhibition;EXHI;Singel 425;52.3676855, 4.8897127
UB Singel;UBB;Informatiebalie 1e etage;Info-balie;Singel 425;52.3676855, 4.8897127
UB Singel;UBB;None;None;Singel 425;52.3676855, 4.8897127
UB Singel;UBB;Reading table exhibition;TMP_EXHIB;Singel 425;52.3676855, 4.8897127
UB Singel;UBB;Showcase near infodesk;TMP_SHOW;Singel 425;52.3676855, 4.8897127
UB Singel;UBB;Tijdelijk uitleenbaar;TEMP;Singel 425;52.3676855, 4.8897127
UB Singel;UBB;UB SINGEL - IBL;UBB-IBL;Singel 425;52.3676855, 4.8897127
UB Singel;UBB;UNASSIGNED location;UNASSIGNED;Singel 425;52.3676855, 4.8897127
UvA library back office;UVABO;Exhibition;EXHI;;
UvA library back office;UVABO;UNASSIGNED location;UNASSIGNED;;
UvA online;UVAED;None;997;;
UvA online;UVAED;UNASSIGNED location;UNASSIGNED;;
Z-0 Geesteswetenschappen;0;UNASSIGNED location;UNASSIGNED;;
Z-10 Universiteitsbibliotheek;10;UNASSIGNED location;UNASSIGNED;;
Z-100 CEDLA;100;UNASSIGNED location;UNASSIGNED;;
Z-110 Geneeskunde;110;UNASSIGNED location;UNASSIGNED;;
Z-123 FEB;123;UNASSIGNED location;UNASSIGNED;;
Z-128;128;UNASSIGNED location;UNASSIGNED;;
Z-140 ACTA;140;UNASSIGNED location;UNASSIGNED;;
Z-150 NWI;150;UNASSIGNED location;UNASSIGNED;;
Z-20 Bijzondere Collecties;20;UNASSIGNED location;UNASSIGNED;;
Z-50 FMG;50;UNASSIGNED location;UNASSIGNED;;
Z-70 Informatiseringscentrum;70;UNASSIGNED location;UNASSIGNED;;
Z-80 IVAM;80;UNASSIGNED location;UNASSIGNED;;
Z-90 Rechten;90;UNASSIGNED location;UNASSIGNED;;
Z-ILLC;ILLC;Bibliotheca Beth;129;;
Z-ILLC;ILLC;UNASSIGNED location;UNASSIGNED;;
Z-UB-IBL naar elders;IBL;None;None;;
Z-UB-IBL naar elders;IBL;UNASSIGNED location;UNASSIGNED;;
Z-UB-magazijn;UBM;UB;BSOU;;
Z-UB-magazijn;UBM;UB (D0);D0;;
Z-UB-magazijn;UBM;UB (D1);D1;;
Z-UB-magazijn;UBM;UB (D2);D2;;
Z-UB-magazijn;UBM;UB (D3);D3;;
Z-UB-magazijn;UBM;UB (D4);D4;;
Z-UB-magazijn;UBM;UB (DKEL);DKEL;;
Z-UB-magazijn;UBM;UB (EKEL);EKEL;;
Z-UB-magazijn;UBM;temporary collection conversion UvA;999;;
Z-UB-magazijn;UBM;None;101;;
Z-UB-magazijn;UBM;None;None;;
Z-UB-magazijn;UBM;Studiezalen en afdelingen UB;UB;;
Z-UB-magazijn;UBM;UNASSIGNED location;UNASSIGNED;;
Z-UB-naslagwerken;UBZ;IBL-Buro UB;BIBL;;
Z-UB-naslagwerken;UBZ;Studiezalen en afdelingen UB;UB;;
Z-UB-naslagwerken;UBZ;UNASSIGNED location;UNASSIGNED;;
Z-UvA library Migration;UVAMI;None;UVAMI;;
Z-UvA library Migration;UVAMI;UNASSIGNED location;UNASSIGNED;;
;;None;-1;#N/A;#N/A
;;None;None;#N/A;#N/A
1 Library Name Library Code Location Name Location Code Adres Locatie
2 Allard Pierson Archaeological Collection APM Allard Pierson Archaeological Collection APM Oude Turfmarkt 129 52.3684642, 4.8932426
3 Allard Pierson Archaeological Collection APM Exhibition EXHI Oude Turfmarkt 129 52.3684642, 4.8932426
4 Allard Pierson Archaeological Collection APM UNASSIGNED location UNASSIGNED Oude Turfmarkt 129 52.3684642, 4.8932426
5 Allard Pierson Depot OTM Allard Pierson Depot AP21 AP21 Meibergdreef 29 52.29264,4.95835
6 Allard Pierson Depot OTM Allard Pierson Depot AP3 AP3 Meibergdreef 29 52.29264,4.95835
7 Allard Pierson Depot OTM Allard Pierson Depot SB3 SB3 Meibergdreef 29 52.29264,4.95835
8 Allard Pierson Depot OTM Allard Pierson Depot SB3 Kluis SB3-Kluis Meibergdreef 29 52.29264,4.95835
9 Allard Pierson Depot OTM Allard Pierson Depot SB4 SB4 Meibergdreef 29 52.29264,4.95835
10 Allard Pierson Depot OTM Allard Pierson Depot VA3 VA3 Meibergdreef 29 52.29264,4.95835
11 Allard Pierson Depot OTM Allard Pierson Depot VA4 VA4 Meibergdreef 29 52.29264,4.95835
12 Allard Pierson Depot OTM Allard Pierson Depot VV3 VV3 Meibergdreef 29 52.29264,4.95835
13 Allard Pierson Depot OTM Allard Pierson Depot VV4 VV4 Meibergdreef 29 52.29264,4.95835
14 Allard Pierson Depot OTM None I2 Meibergdreef 29 52.29264,4.95835
15 Allard Pierson Depot OTM Tijdelijk in Reading Room RR Meibergdreef 29 52.29264,4.95835
16 Allard Pierson Depot OTM UNASSIGNED location UNASSIGNED Meibergdreef 29 52.29264,4.95835
17 Allard Pierson Handbibliotheek BC otm-ibl BCIBL Oude Turfmarkt 129 52.3684642, 4.8932426
18 Allard Pierson Handbibliotheek BC AP-Archeologie APA Oude Turfmarkt 129 52.3684642, 4.8932426
19 Allard Pierson Handbibliotheek BC AP-BKR APB Oude Turfmarkt 129 52.3684642, 4.8932426
20 Allard Pierson Handbibliotheek BC AP-Computermuseum APC Oude Turfmarkt 129 52.3684642, 4.8932426
21 Allard Pierson Handbibliotheek BC AP-Handschriften APH Oude Turfmarkt 129 52.3684642, 4.8932426
22 Allard Pierson Handbibliotheek BC AP-Universiteitsgeschiedenis APU Oude Turfmarkt 129 52.3684642, 4.8932426
23 Allard Pierson Handbibliotheek BC Allard Pierson Kaartenzaal KRTZL Oude Turfmarkt 129 52.3684642, 4.8932426
24 Allard Pierson Handbibliotheek BC Allard Pierson Onderzoekzaal BCOZL Oude Turfmarkt 129 52.3684642, 4.8932426
25 Allard Pierson Handbibliotheek BC Exhibition EXHI Oude Turfmarkt 129 52.3684642, 4.8932426
26 Allard Pierson Handbibliotheek BC None None Oude Turfmarkt 129 52.3684642, 4.8932426
27 Allard Pierson Handbibliotheek BC Randapparatuur HBAPP Oude Turfmarkt 129 52.3684642, 4.8932426
28 Allard Pierson Handbibliotheek BC UNASSIGNED location UNASSIGNED Oude Turfmarkt 129 52.3684642, 4.8932426
29 Artis Bibliotheek ARTIS Artis Bibliotheek 242 242 Plantage Middenlaan 45 52.3655771, 4.9147693
30 Artis Bibliotheek ARTIS Artis Bibliotheek AB AB Plantage Middenlaan 45 52.3655771, 4.9147693
31 Artis Bibliotheek ARTIS Artis Bibliotheek CROWN CROWN Plantage Middenlaan 45 52.3655771, 4.9147693
32 Artis Bibliotheek ARTIS Artis Bibliotheek OTM OTM Plantage Middenlaan 45 52.3655771, 4.9147693
33 Artis Bibliotheek ARTIS Exhibition EXHI Plantage Middenlaan 45 52.3655771, 4.9147693
34 Artis Bibliotheek ARTIS UNASSIGNED location UNASSIGNED Plantage Middenlaan 45 52.3655771, 4.9147693
35 BORR-IBL Resource Sharing Library ILL RES_SHARE_ILL Borrowing Resource Sharing Requests ILL OUT_RS_ILL
36 BORR-IBL Resource Sharing Library ILL RES_SHARE_ILL Lending Resource Sharing Requests ILL IN_RS_ILL
37 BORR-IBL Resource Sharing Library ILL RES_SHARE_ILL None ResourceLocated
38 BORR-IBL Resource Sharing Library ILL RES_SHARE_ILL PCHH-ILL PCHH-ILL
39 Bushuis - pickup location BHBPU Exhibition EXHI Kloveniersburgwal 48 52.3707822, 4.8981663
40 Bushuis - pickup location BHBPU UNASSIGNED location UNASSIGNED Kloveniersburgwal 48 52.3707822, 4.8981663
41 CEDLA CEDLA CEDLA - IBL CEDLA-IBL Roetersstraat 33, 52.3623095, 4.9113548
42 CEDLA CEDLA Centrum voor Studie en Documentatie Latijns-Amerika 174 Roetersstraat 33, 52.3623095, 4.9113548
43 CEDLA CEDLA Exhibition EXHI Roetersstraat 33, 52.3623095, 4.9113548
44 CEDLA CEDLA None 174: Roetersstraat 33, 52.3623095, 4.9113548
45 CEDLA CEDLA UNASSIGNED location UNASSIGNED Roetersstraat 33, 52.3623095, 4.9113548
46 GW-collecties UB UBGW Alfa Informatica 291 Singel 425 52.3676855, 4.8897127
47 GW-collecties UB UBGW Algemeen 116 Singel 425 52.3676855, 4.8897127
48 GW-collecties UB UBGW Algemene literatuurwetenschap 112 Singel 425 52.3676855, 4.8897127
49 GW-collecties UB UBGW Algemene taalwetenschap 110 Singel 425 52.3676855, 4.8897127
50 GW-collecties UB UBGW Amerika Instituut 173 Singel 425 52.3676855, 4.8897127
51 GW-collecties UB UBGW Bronnenkamer 601 Singel 425 52.3676855, 4.8897127
52 GW-collecties UB UBGW Byzantinologie - Nieuwgrieks 107 Singel 425 52.3676855, 4.8897127
53 GW-collecties UB UBGW Centrum voor Studie en Documentatie Latijns-Amerika 174 Singel 425 52.3676855, 4.8897127
54 GW-collecties UB UBGW Collectie Esthetica 127 Singel 425 52.3676855, 4.8897127
55 GW-collecties UB UBGW Culturele Studies 311 Singel 425 52.3676855, 4.8897127
56 GW-collecties UB UBGW Duits 117 Singel 425 52.3676855, 4.8897127
57 GW-collecties UB UBGW Engels 115 Singel 425 52.3676855, 4.8897127
58 GW-collecties UB UBGW Europese studies 301 Singel 425 52.3676855, 4.8897127
59 GW-collecties UB UBGW Exhibition EXHI Singel 425 52.3676855, 4.8897127
60 GW-collecties UB UBGW Fonetiek 132 Singel 425 52.3676855, 4.8897127
61 GW-collecties UB UBGW Frans/Roemeens 119 Singel 425 52.3676855, 4.8897127
62 GW-collecties UB UBGW Fries 114 Singel 425 52.3676855, 4.8897127
63 GW-collecties UB UBGW Geschiedenis 138 Singel 425 52.3676855, 4.8897127
64 GW-collecties UB UBGW Hongaars 123 Singel 425 52.3676855, 4.8897127
65 GW-collecties UB UBGW Instituut Moderne Nabije Oosten (IMNO) 105 Singel 425 52.3676855, 4.8897127
66 GW-collecties UB UBGW Italiaans 120 Singel 425 52.3676855, 4.8897127
67 GW-collecties UB UBGW Juda Palache instituut 106 Singel 425 52.3676855, 4.8897127
68 GW-collecties UB UBGW Klassieken & Archeologie 101 Singel 425 52.3676855, 4.8897127
69 GW-collecties UB UBGW Kunstgeschiedenis 128 Singel 425 52.3676855, 4.8897127
70 GW-collecties UB UBGW Kunstgeschiedenis - magazijn 128M Singel 425 52.3676855, 4.8897127
71 GW-collecties UB UBGW Mediastudies & Theaterwetenschap 125 Singel 425 52.3676855, 4.8897127
72 GW-collecties UB UBGW Muziekwetenschap 131 Singel 425 52.3676855, 4.8897127
73 GW-collecties UB UBGW Neerlandistiek 113 Singel 425 52.3676855, 4.8897127
74 GW-collecties UB UBGW Neolatijn 103 Singel 425 52.3676855, 4.8897127
75 GW-collecties UB UBGW None None Singel 425 52.3676855, 4.8897127
76 GW-collecties UB UBGW Oosteuropese studies 172 Singel 425 52.3676855, 4.8897127
77 GW-collecties UB UBGW Papyrologie – ruimte E2.01 PAPY Singel 425 52.3676855, 4.8897127
78 GW-collecties UB UBGW Portugees 122 Singel 425 52.3676855, 4.8897127
79 GW-collecties UB UBGW Scandinavistiek, incl. Fins 118 Singel 425 52.3676855, 4.8897127
80 GW-collecties UB UBGW Slavistiek 104 Singel 425 52.3676855, 4.8897127
81 GW-collecties UB UBGW Spaans 121 Singel 425 52.3676855, 4.8897127
82 GW-collecties UB UBGW Study room A1.01 A101 Singel 425 52.3676855, 4.8897127
83 GW-collecties UB UBGW Taalstudie 600 Singel 425 52.3676855, 4.8897127
84 GW-collecties UB UBGW Temporary not available UNAV Singel 425 52.3676855, 4.8897127
85 GW-collecties UB UBGW Theologie en Religiestudies 100 Singel 425 52.3676855, 4.8897127
86 GW-collecties UB UBGW UBGW Tijdschriften GWSerials Singel 425 52.3676855, 4.8897127
87 GW-collecties UB UBGW UNASSIGNED location UNASSIGNED Singel 425 52.3676855, 4.8897127
88 GW-collecties UB UBGW Vertaalwetenschap 306 Singel 425 52.3676855, 4.8897127
89 GW-collecties UB UBGW Werkgroepkast - ruimte E 2.01 WERK Singel 425 52.3676855, 4.8897127
90 GW-collecties UB UBGW Wijsbegeerte 126 Singel 425 52.3676855, 4.8897127
91 GW-collecties UB UBGW Zuidafrikaans 279 Singel 425 52.3676855, 4.8897127
92 IViR IVIR Exhibition EXHI Nieuwe Achtergracht 166 52.3631403, 4.9122407
93 IViR IVIR Instituut voor Informatierecht (IVIR) 312 Nieuwe Achtergracht 166 52.3631403, 4.9122407
94 IViR IVIR UNASSIGNED location UNASSIGNED Nieuwe Achtergracht 166 52.3631403, 4.9122407
95 IWO-depot IWO IWO (HvA 1e verdieping) IH1 Meibergdreef 29 52.29264,4.95835
96 IWO-depot IWO temporary collection conversion UvA 999 Meibergdreef 29 52.29264,4.95835
97 IWO-depot IWO Artis Bibliotheek ARTIS Meibergdreef 29 52.29264,4.95835
98 IWO-depot IWO Exhibition EXHI Meibergdreef 29 52.29264,4.95835
99 IWO-depot IWO IBL-OUT IBL-OUT Meibergdreef 29 52.29264,4.95835
100 IWO-depot IWO IWO I1 I1 Meibergdreef 29 52.29264,4.95835
101 IWO-depot IWO IWO I2 I2 Meibergdreef 29 52.29264,4.95835
102 IWO-depot IWO IWO I3 I3 Meibergdreef 29 52.29264,4.95835
103 IWO-depot IWO IWO IBL IWO-IBL Meibergdreef 29 52.29264,4.95835
104 IWO-depot IWO IWO Verplaatsing IWO-TEMP Meibergdreef 29 52.29264,4.95835
105 IWO-depot IWO IWO tbv grote formaten I1F Meibergdreef 29 52.29264,4.95835
106 IWO-depot IWO Inzage op IWO wegens groot formaat I2F Meibergdreef 29 52.29264,4.95835
107 IWO-depot IWO Muziek Centrum Nederland MCN Meibergdreef 29 52.29264,4.95835
108 IWO-depot IWO None 115 Meibergdreef 29 52.29264,4.95835
109 IWO-depot IWO None 242 Meibergdreef 29 52.29264,4.95835
110 IWO-depot IWO None IWO-BC Meibergdreef 29 52.29264,4.95835
111 IWO-depot IWO None None Meibergdreef 29 52.29264,4.95835
112 IWO-depot IWO None UBM: Obr. 012 168 Meibergdreef 29 52.29264,4.95835
113 IWO-depot IWO None UBM: Obr. FOL 003 960 Meibergdreef 29 52.29264,4.95835
114 IWO-depot IWO None UBM: Obr. FOL 004 013 Meibergdreef 29 52.29264,4.95835
115 IWO-depot IWO None UBM: W Meibergdreef 29 52.29264,4.95835
116 IWO-depot IWO None music Meibergdreef 29 52.29264,4.95835
117 IWO-depot IWO TIN TIN Meibergdreef 29 52.29264,4.95835
118 IWO-depot IWO Temporary location MCN1 (do not use) MCN1 Meibergdreef 29 52.29264,4.95835
119 IWO-depot IWO Temporary location MCN2 (do not use) MCN2 Meibergdreef 29 52.29264,4.95835
120 IWO-depot IWO UNASSIGNED location UNASSIGNED Meibergdreef 29 52.29264,4.95835
121 Juridische Bibliotheek JB Apparatuur JB-APP Nieuwe Achtergracht 166 52.3631403, 4.9122407
122 Juridische Bibliotheek JB Buitenlands Recht en Internationaal Privaatrecht 187 Nieuwe Achtergracht 166 52.3631403, 4.9122407
123 Juridische Bibliotheek JB Criminologisch instituut Bonger 276 Nieuwe Achtergracht 166 52.3631403, 4.9122407
124 Juridische Bibliotheek JB Exhibition EXHI Nieuwe Achtergracht 166 52.3631403, 4.9122407
125 Juridische Bibliotheek JB Internationaal Recht 171 Nieuwe Achtergracht 166 52.3631403, 4.9122407
126 Juridische Bibliotheek JB Internationaal recht 189 Nieuwe Achtergracht 166 52.3631403, 4.9122407
127 Juridische Bibliotheek JB JB - IBL JB-IBL Nieuwe Achtergracht 166 52.3631403, 4.9122407
128 Juridische Bibliotheek JB JB - Tijdschriften JBSerials Nieuwe Achtergracht 166 52.3631403, 4.9122407
129 Juridische Bibliotheek JB Juridische Bibliotheek 184 Nieuwe Achtergracht 166 52.3631403, 4.9122407
130 Juridische Bibliotheek JB None None Nieuwe Achtergracht 166 52.3631403, 4.9122407
131 Juridische Bibliotheek JB Strafrecht 185 Nieuwe Achtergracht 166 52.3631403, 4.9122407
132 Juridische Bibliotheek JB Tijdelijk uitleenbaar JBTEMP Nieuwe Achtergracht 166 52.3631403, 4.9122407
133 Juridische Bibliotheek JB UNASSIGNED location UNASSIGNED Nieuwe Achtergracht 166 52.3631403, 4.9122407
134 Library Learning Centre Roeterseiland REC Apparatuur LLC-RAND Roetersstraat 11 52.3638465, 4.9112789
135 Library Learning Centre Roeterseiland REC Exhibition EXHI Roetersstraat 11 52.3638465, 4.9112789
136 Library Learning Centre Roeterseiland REC IBL LLC-IBL Roetersstraat 11 52.3638465, 4.9112789
137 Library Learning Centre Roeterseiland REC LLC REC Studieboeken LLC-SB Roetersstraat 11 52.3638465, 4.9112789
138 Library Learning Centre Roeterseiland REC LLC REC Testmaterialen LLC-TEST Roetersstraat 11 52.3638465, 4.9112789
139 Library Learning Centre Roeterseiland REC LLCREC - Tijdschriften RECSerials Roetersstraat 11 52.3638465, 4.9112789
140 Library Learning Centre Roeterseiland REC None None Roetersstraat 11 52.3638465, 4.9112789
141 Library Learning Centre Roeterseiland REC Roeterseiland 333 Roetersstraat 11 52.3638465, 4.9112789
142 Library Learning Centre Roeterseiland REC Showcase UpForGrabs TMP_EXHB_R Roetersstraat 11 52.3638465, 4.9112789
143 Library Learning Centre Roeterseiland REC Tijdelijk uitleenbaar TEMP Roetersstraat 11 52.3638465, 4.9112789
144 Library Learning Centre Roeterseiland REC UNASSIGNED location UNASSIGNED Roetersstraat 11 52.3638465, 4.9112789
145 Medische Bibliotheek AMC AMC - IBL AMC-IBL Meibergdreef 9 52.2948832, 4.9579824
146 Medische Bibliotheek AMC Exhibition EXHI Meibergdreef 9 52.2948832, 4.9579824
147 Medische Bibliotheek AMC Medische Bibliotheek AMC 215 Meibergdreef 9 52.2948832, 4.9579824
148 Medische Bibliotheek AMC UNASSIGNED location UNASSIGNED Meibergdreef 9 52.2948832, 4.9579824
149 P.C.Hoofthuis PCHH Bibliotheek Bungehuis 300 Spuistraat 134 52.3741032, 4.8898317
150 P.C.Hoofthuis PCHH Magazijn MAG Spuistraat 134 52.3741032, 4.8898317
151 P.C.Hoofthuis PCHH temporary collection conversion UvA 999 Spuistraat 134 52.3741032, 4.8898317
152 P.C.Hoofthuis PCHH Alfa Informatica 291 Spuistraat 134 52.3741032, 4.8898317
153 P.C.Hoofthuis PCHH Algemeen 116 Spuistraat 134 52.3741032, 4.8898317
154 P.C.Hoofthuis PCHH Algemene literatuurwetenschap 112 Spuistraat 134 52.3741032, 4.8898317
155 P.C.Hoofthuis PCHH Algemene taalwetenschap 110 Spuistraat 134 52.3741032, 4.8898317
156 P.C.Hoofthuis PCHH Amerika Instituut 173 Spuistraat 134 52.3741032, 4.8898317
157 P.C.Hoofthuis PCHH Apparatuur PCHH-RAND Spuistraat 134 52.3741032, 4.8898317
158 P.C.Hoofthuis PCHH Bronnenkamer 601 Spuistraat 134 52.3741032, 4.8898317
159 P.C.Hoofthuis PCHH Byzantinologie - Nieuwgrieks 107 Spuistraat 134 52.3741032, 4.8898317
160 P.C.Hoofthuis PCHH Centrum voor Studie en Documentatie Latijns-Amerika 174 Spuistraat 134 52.3741032, 4.8898317
161 P.C.Hoofthuis PCHH Collectie Esthetica 127 Spuistraat 134 52.3741032, 4.8898317
162 P.C.Hoofthuis PCHH Culturele Studies 311 Spuistraat 134 52.3741032, 4.8898317
163 P.C.Hoofthuis PCHH Duits 117 Spuistraat 134 52.3741032, 4.8898317
164 P.C.Hoofthuis PCHH Engels 115 Spuistraat 134 52.3741032, 4.8898317
165 P.C.Hoofthuis PCHH Europese studies 301 Spuistraat 134 52.3741032, 4.8898317
166 P.C.Hoofthuis PCHH Exhibition EXHI Spuistraat 134 52.3741032, 4.8898317
167 P.C.Hoofthuis PCHH Fonetiek 132 Spuistraat 134 52.3741032, 4.8898317
168 P.C.Hoofthuis PCHH Frans/Roemeens 119 Spuistraat 134 52.3741032, 4.8898317
169 P.C.Hoofthuis PCHH Fries 114 Spuistraat 134 52.3741032, 4.8898317
170 P.C.Hoofthuis PCHH Geschiedenis 138 Spuistraat 134 52.3741032, 4.8898317
171 P.C.Hoofthuis PCHH Hongaars 123 Spuistraat 134 52.3741032, 4.8898317
172 P.C.Hoofthuis PCHH Instituut Moderne Nabije Oosten (IMNO) 105 Spuistraat 134 52.3741032, 4.8898317
173 P.C.Hoofthuis PCHH Italiaans 120 Spuistraat 134 52.3741032, 4.8898317
174 P.C.Hoofthuis PCHH Juda Palache instituut 106 Spuistraat 134 52.3741032, 4.8898317
175 P.C.Hoofthuis PCHH Klassieken & Archeologie 101 Spuistraat 134 52.3741032, 4.8898317
176 P.C.Hoofthuis PCHH Kunstgeschiedenis 128 Spuistraat 134 52.3741032, 4.8898317
177 P.C.Hoofthuis PCHH Mediastudies & Theaterwetenschap 125 Spuistraat 134 52.3741032, 4.8898317
178 P.C.Hoofthuis PCHH Muziekwetenschap 131 Spuistraat 134 52.3741032, 4.8898317
179 P.C.Hoofthuis PCHH Neerlandistiek 113 Spuistraat 134 52.3741032, 4.8898317
180 P.C.Hoofthuis PCHH Neolatijn 103 Spuistraat 134 52.3741032, 4.8898317
181 P.C.Hoofthuis PCHH None 128M Spuistraat 134 52.3741032, 4.8898317
182 P.C.Hoofthuis PCHH None None Spuistraat 134 52.3741032, 4.8898317
183 P.C.Hoofthuis PCHH Oosteuropese studies 172 Spuistraat 134 52.3741032, 4.8898317
184 P.C.Hoofthuis PCHH PCHH - IBL PCHH-IBL Spuistraat 134 52.3741032, 4.8898317
185 P.C.Hoofthuis PCHH PCHH - Tijdschriften PCHHSerial Spuistraat 134 52.3741032, 4.8898317
186 P.C.Hoofthuis PCHH Portugees 122 Spuistraat 134 52.3741032, 4.8898317
187 P.C.Hoofthuis PCHH Scandinavistiek, incl. Fins 118 Spuistraat 134 52.3741032, 4.8898317
188 P.C.Hoofthuis PCHH Slavistiek 104 Spuistraat 134 52.3741032, 4.8898317
189 P.C.Hoofthuis PCHH Spaans 121 Spuistraat 134 52.3741032, 4.8898317
190 P.C.Hoofthuis PCHH Taalstudie 600 Spuistraat 134 52.3741032, 4.8898317
191 P.C.Hoofthuis PCHH Temporary not available UNAV Spuistraat 134 52.3741032, 4.8898317
192 P.C.Hoofthuis PCHH Theologie en Religiestudies 100 Spuistraat 134 52.3741032, 4.8898317
193 P.C.Hoofthuis PCHH UNASSIGNED location UNASSIGNED Spuistraat 134 52.3741032, 4.8898317
194 P.C.Hoofthuis PCHH Vertaalwetenschap 306 Spuistraat 134 52.3741032, 4.8898317
195 P.C.Hoofthuis PCHH Werkgroepkast - 1e etage WERK Spuistraat 134 52.3741032, 4.8898317
196 P.C.Hoofthuis PCHH Wijsbegeerte 126 Spuistraat 134 52.3741032, 4.8898317
197 P.C.Hoofthuis PCHH Zuidafrikaans 279 Spuistraat 134 52.3741032, 4.8898317
198 Resource Sharing Library RES_SHARE Borrowing Resource Sharing Requests OUT_RS_REQ
199 Resource Sharing Library RES_SHARE Lending Resource Sharing Requests IN_RS_REQ
200 Resource Sharing Library RES_SHARE None ResourceLocated
201 Sciencepark Bibliotheek BETA Amstel instituut 341 Science Park 904 52.3544941, 4.9557553
202 Sciencepark Bibliotheek BETA Apparatuur BETA-RAND Science Park 904 52.3544941, 4.9557553
203 Sciencepark Bibliotheek BETA BETA - IBL BETA-IBL Science Park 904 52.3544941, 4.9557553
204 Sciencepark Bibliotheek BETA BETA Bibliotheek 450 Science Park 904 52.3544941, 4.9557553
205 Sciencepark Bibliotheek BETA Bibliotheek Biologisch Centrum Anna's Hoeve 302 Science Park 904 52.3544941, 4.9557553
206 Sciencepark Bibliotheek BETA Exhibition EXHI Science Park 904 52.3544941, 4.9557553
207 Sciencepark Bibliotheek BETA Hortus 303 Science Park 904 52.3544941, 4.9557553
208 Sciencepark Bibliotheek BETA Logica 253 Science Park 904 52.3544941, 4.9557553
209 Sciencepark Bibliotheek BETA None None Science Park 904 52.3544941, 4.9557553
210 Sciencepark Bibliotheek BETA None Verpl Science Park 904 52.3544941, 4.9557553
211 Sciencepark Bibliotheek BETA Sciencepark Studieboeken SP-SB Science Park 904 52.3544941, 4.9557553
212 Sciencepark Bibliotheek BETA Sciencepark Tijdschriften SPSerials Science Park 904 52.3544941, 4.9557553
213 Sciencepark Bibliotheek BETA Showcase UpForGrabs TMP_EXHB_B Science Park 904 52.3544941, 4.9557553
214 Sciencepark Bibliotheek BETA Sterrenkunde en Informatica 263 Science Park 904 52.3544941, 4.9557553
215 Sciencepark Bibliotheek BETA UNASSIGNED location UNASSIGNED Science Park 904 52.3544941, 4.9557553
216 Sciencepark Bibliotheek BETA Wiskunde 254 Science Park 904 52.3544941, 4.9557553
217 Sciencepark Bibliotheek BETA Wiskunde en Informatica 307 Science Park 904 52.3544941, 4.9557553
218 UB Singel UBB Apparatuur UBB-RAND Singel 425 52.3676855, 4.8897127
219 UB Singel UBB Exhibition EXHI Singel 425 52.3676855, 4.8897127
220 UB Singel UBB Informatiebalie 1e etage Info-balie Singel 425 52.3676855, 4.8897127
221 UB Singel UBB None None Singel 425 52.3676855, 4.8897127
222 UB Singel UBB Reading table exhibition TMP_EXHIB Singel 425 52.3676855, 4.8897127
223 UB Singel UBB Showcase near infodesk TMP_SHOW Singel 425 52.3676855, 4.8897127
224 UB Singel UBB Tijdelijk uitleenbaar TEMP Singel 425 52.3676855, 4.8897127
225 UB Singel UBB UB SINGEL - IBL UBB-IBL Singel 425 52.3676855, 4.8897127
226 UB Singel UBB UNASSIGNED location UNASSIGNED Singel 425 52.3676855, 4.8897127
227 UvA library back office UVABO Exhibition EXHI
228 UvA library back office UVABO UNASSIGNED location UNASSIGNED
229 UvA online UVAED None 997
230 UvA online UVAED UNASSIGNED location UNASSIGNED
231 Z-0 Geesteswetenschappen 0 UNASSIGNED location UNASSIGNED
232 Z-10 Universiteitsbibliotheek 10 UNASSIGNED location UNASSIGNED
233 Z-100 CEDLA 100 UNASSIGNED location UNASSIGNED
234 Z-110 Geneeskunde 110 UNASSIGNED location UNASSIGNED
235 Z-123 FEB 123 UNASSIGNED location UNASSIGNED
236 Z-128 128 UNASSIGNED location UNASSIGNED
237 Z-140 ACTA 140 UNASSIGNED location UNASSIGNED
238 Z-150 NWI 150 UNASSIGNED location UNASSIGNED
239 Z-20 Bijzondere Collecties 20 UNASSIGNED location UNASSIGNED
240 Z-50 FMG 50 UNASSIGNED location UNASSIGNED
241 Z-70 Informatiseringscentrum 70 UNASSIGNED location UNASSIGNED
242 Z-80 IVAM 80 UNASSIGNED location UNASSIGNED
243 Z-90 Rechten 90 UNASSIGNED location UNASSIGNED
244 Z-ILLC ILLC Bibliotheca Beth 129
245 Z-ILLC ILLC UNASSIGNED location UNASSIGNED
246 Z-UB-IBL naar elders IBL None None
247 Z-UB-IBL naar elders IBL UNASSIGNED location UNASSIGNED
248 Z-UB-magazijn UBM UB BSOU
249 Z-UB-magazijn UBM UB (D0) D0
250 Z-UB-magazijn UBM UB (D1) D1
251 Z-UB-magazijn UBM UB (D2) D2
252 Z-UB-magazijn UBM UB (D3) D3
253 Z-UB-magazijn UBM UB (D4) D4
254 Z-UB-magazijn UBM UB (DKEL) DKEL
255 Z-UB-magazijn UBM UB (EKEL) EKEL
256 Z-UB-magazijn UBM temporary collection conversion UvA 999
257 Z-UB-magazijn UBM None 101
258 Z-UB-magazijn UBM None None
259 Z-UB-magazijn UBM Studiezalen en afdelingen UB UB
260 Z-UB-magazijn UBM UNASSIGNED location UNASSIGNED
261 Z-UB-naslagwerken UBZ IBL-Buro UB BIBL
262 Z-UB-naslagwerken UBZ Studiezalen en afdelingen UB UB
263 Z-UB-naslagwerken UBZ UNASSIGNED location UNASSIGNED
264 Z-UvA library Migration UVAMI None UVAMI
265 Z-UvA library Migration UVAMI UNASSIGNED location UNASSIGNED
266 None -1 #N/A #N/A
267 None None #N/A #N/A

File diff suppressed because one or more lines are too long

5912
data/requests.csv Normal file

File diff suppressed because it is too large Load diff

74
index.html Normal file
View file

@ -0,0 +1,74 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>UvA UB - movements</title>
<style>
#canvas {
/* background: white; */
position: absolute;
top: 0;
left: 0;
transform-origin: top left;
margin: 0;
padding: 0;
overflow: hidden;
}
@font-face {
font-family: 'Fluxisch Mono', sans-serif;
src:
url(assets/fonts/FluxischElse-Regular.woff) format('woff');
font-weight: normal;
}
@font-face {
font-family: 'Fluxisch Mono', sans-serif;
src:
url(assets/fonts/FluxischElse-Light.woff) format('woff');
font-weight: 200;
}
@font-face {
font-family: 'Fluxisch Mono', sans-serif;
src:
url(assets/fonts/FluxischElse-Bold.woff) format('woff');
font-weight: bold;
}
body {
background: black;
}
</style>
<script>
function scaleToFit() {
const el = document.getElementById('canvas');
const sw = window.innerWidth / parseInt(el.style.width);
const sh = window.innerHeight / parseInt(el.style.height);
const s = Math.min(sw, sh);
canvas.style.transform = `scale(${s * 100}%)`;
}
window.addEventListener('resize', scaleToFit);
window.addEventListener('load', scaleToFit);
</script>
</head>
<body>
<div id="canvas">
<div id="viz">
</div>
</div>
<script type="module" src="/src/main.ts"></script>
</body>
</html>

1813
package-lock.json generated Normal file

File diff suppressed because it is too large Load diff

21
package.json Normal file
View file

@ -0,0 +1,21 @@
{
"name": "ub-movements",
"private": true,
"version": "0.0.0",
"type": "module",
"scripts": {
"dev": "vite",
"build": "vite build",
"preview": "vite preview",
"check": "svelte-check --tsconfig ./tsconfig.json"
},
"devDependencies": {
"@sveltejs/vite-plugin-svelte": "^3.0.2",
"@tsconfig/svelte": "^5.0.2",
"svelte": "^4.2.12",
"svelte-check": "^3.6.7",
"tslib": "^2.6.2",
"typescript": "^5.2.2",
"vite": "^5.2.0"
}
}

55
parse_data.py Normal file
View file

@ -0,0 +1,55 @@
import csv
import json
node_names = set()
edges = []
libraries = {}
locations = {}
with open("data/locaties.csv") as fp:
reader = csv.DictReader(fp, delimiter=";")
for item in reader:
locatie = item['Locatie'].split(',')
try:
lat, lon = locatie
except ValueError as e:
lat, lon = None, None
library = {
'name': item['Library Name'],
'code': item['Library Code'],
'adres': item['Adres'],
'lat': lat,
'lon': lon,
}
location = {
'location': item['Location Name'],
'code': item['Location Code'],
'library': library
}
libraries[library['name']] = library
locations[location['code']] = location
with open("data/requests.csv") as fp:
reader = csv.DictReader(fp, delimiter=";")
for item in reader:
node_names.add(item['Owning Library Name'])
node_names.add(item['Pickup Location'])
edges.append(item)
nodes = [{'name': n} for n in node_names]
print(f"{len(nodes)} nodes, {len(edges)} edges")
data = {
'nodes': list(libraries.values()), #nodes,
'edges': edges
}
fn = 'data/parsed_requests.json'
with open(fn, 'w') as fp:
json.dump(data, fp)
print(f"Written to {fn}")

8
poetry.lock generated Normal file
View file

@ -0,0 +1,8 @@
package = []
[metadata]
lock-version = "1.1"
python-versions = "^3.9"
content-hash = "5b80bcf39bc22fc51a0c05260792ccc8bde494467670046c58c64725c897eb75"
[metadata.files]

Binary file not shown.

Binary file not shown.

Binary file not shown.

15
pyproject.toml Normal file
View file

@ -0,0 +1,15 @@
[tool.poetry]
name = "ub-movements"
version = "0.1.0"
description = ""
authors = ["Ruben van de Ven <git@rubenvandeven.com>"]
readme = "README.md"
packages = [{include = "ub_movements"}]
[tool.poetry.dependencies]
python = "^3.9"
[build-system]
requires = ["poetry-core"]
build-backend = "poetry.core.masonry.api"

47
src/App.svelte Normal file
View file

@ -0,0 +1,47 @@
<script lang="ts">
import svelteLogo from './assets/svelte.svg'
import viteLogo from '/vite.svg'
import Counter from './lib/Counter.svelte'
</script>
<main>
<div>
<a href="https://vitejs.dev" target="_blank" rel="noreferrer">
<img src={viteLogo} class="logo" alt="Vite Logo" />
</a>
<a href="https://svelte.dev" target="_blank" rel="noreferrer">
<img src={svelteLogo} class="logo svelte" alt="Svelte Logo" />
</a>
</div>
<h1>Vite + Svelte</h1>
<div class="card">
<Counter />
</div>
<p>
Check out <a href="https://github.com/sveltejs/kit#readme" target="_blank" rel="noreferrer">SvelteKit</a>, the official Svelte app framework powered by Vite!
</p>
<p class="read-the-docs">
Click on the Vite and Svelte logos to learn more
</p>
</main>
<style>
.logo {
height: 6em;
padding: 1.5em;
will-change: filter;
transition: filter 300ms;
}
.logo:hover {
filter: drop-shadow(0 0 2em #646cffaa);
}
.logo.svelte:hover {
filter: drop-shadow(0 0 2em #ff3e00aa);
}
.read-the-docs {
color: #888;
}
</style>

219
src/Viz.svelte Normal file
View file

@ -0,0 +1,219 @@
<script lang="ts">
import parsed_requests from "/data/parsed_requests.json";
$: console.log(parsed_requests);
// TODO: pass these from main.ts (or vice versaas)
const width = 2160;
const height = 3840;
// preprocess data
const nodes = parsed_requests.nodes;
const edges: Array<Object> = parsed_requests.edges;
// filter nodes with only having both Latitude and Longitude.
// then map these coordinates to the canvas space
const valid_nodes = nodes
.filter((n) => n.lat && n.lon)
.map((node) => {
// const { x: x1, y: y1 } = latLonToOffsets(node.lat, node.lon, 100000, 100000)
const { x: x1, y: y1 } = latLonToOffsets(
node.lat,
node.lon,
100000,
100000,
);
console.log(x1, y1);
const x2 = inverse_lerp(1358, 1380, x1);
const y2 = inverse_lerp(32862, 32900, y1);
const margin = 200;
const x = x2 * (width - 2 * margin) + margin;
const y = y2 * (height - 2 * margin) + margin;
// console.log(x2, y2)
// console.log(node)
node["x"] = x;
node["y"] = y;
return node;
});
// create an index to access the node objects by their name
const nodeMap = Object.fromEntries(valid_nodes.map((d) => [d["name"], d]));
const edgeIndexBarcode = buildIndex(edges, "Barcode");
// console.log(edgeIndexBarcode);
const movements = edges
.filter(
(l) =>
nodeMap[l["Owning Library Name"]] &&
nodeMap[l["Pickup Location"]],
)
.map((l, idx) => {
l.source = nodeMap[l["Owning Library Name"]];
l.target = nodeMap[l["Pickup Location"]];
l.nr = idx;
return l;
});
function degreesToRadians(degrees) {
return (degrees * Math.PI) / 180;
}
function latLonToOffsets(latitude, longitude, mapWidth, mapHeight) {
const FE = 180; // false easting
const radius = mapWidth / (2 * Math.PI);
const latRad = degreesToRadians(latitude);
const lonRad = degreesToRadians(longitude + FE);
const x = lonRad * radius;
const yFromEquator =
radius * Math.log(Math.tan(Math.PI / 4 + latRad / 2));
const y = mapHeight / 2 - yFromEquator;
return { x, y };
}
function lerp(X, Y, t) {
return X * t + Y * (1 - t);
}
function inverse_lerp(a, b, x) {
return (x - a) / (b - a);
}
interface IndexObject {
[index: string]: Array<number>;
}
function buildIndex(objectList: Array<Object>, field: string): IndexObject {
const index = {};
for (const idx in objectList) {
const v = objectList[idx][field];
if (!index.hasOwnProperty(v)) {
index[v] = [idx];
} else {
index[v].push(idx);
}
}
return index;
}
function get_path_d(movement) {
const m = movement;
let sourceX, targetX, midX, dx, dy, angle;
// This mess makes the arrows exactly perfect.
// thanks to http://bl.ocks.org/curran/9b73eb564c1c8a3d8f3ab207de364bf4
if (m.source.x < m.target.x) {
sourceX = m.source.x;
targetX = m.target.x;
} else if (m.target.x < m.source.x) {
targetX = m.target.x;
sourceX = m.source.x;
} else if (m.target.isCircle) {
targetX = sourceX = m.target.x;
} else if (m.source.isCircle) {
targetX = sourceX = m.source.x;
} else {
midX = (m.source.x + m.target.x) / 2;
if (midX > m.target.x) {
midX = m.target.x;
} else if (midX > m.source.x) {
midX = m.source.x;
} else if (midX < m.target.x) {
midX = m.target.x;
} else if (midX < m.source.x) {
midX = m.source.x;
}
targetX = sourceX = midX;
}
dx = targetX - sourceX;
dy = m.target.y - m.source.y;
angle = Math.atan2(dx, dy);
var srcSize = 5; //_mapGraph.getSizeForNode(m.source);
var tgtSize = 5; //_mapGraph.getSizeForNode(m.target);
// Compute the line endpoint such that the arrow
// it not in the center, but rather slightly out of it
// use a small ofset for the angle to compensate roughly for the curve
m.sourceX = sourceX + Math.sin(angle + 0.5) * srcSize;
m.targetX = targetX - Math.sin(angle - 0.5) * tgtSize;
m.sourceY = m.source.y + Math.cos(angle + 0.5) * srcSize;
m.targetY = m.target.y - Math.cos(angle - 0.5) * tgtSize;
// find radius of arc based on distance between points
// add a jitter to spread out the lines when links are stacked
const dr = Math.sqrt(dx * dx + dy * dy) * (0.7 + Math.random() * 0.6);
// "M" + d.source.x + "," + d.source.y + "A" + dr + "," + dr + " 0 0,1 " + d.target.x + "," + d.target.y
return `M ${m.sourceX},${m.sourceY} A ${dr},${dr} 0 0,1 ${m.targetX},${m.targetY}`;
}
console.log(movements);
let drawn_movements = movements;
</script>
<h1>library of <span id="motiontitle">motions</span></h1>
<div id="about">
Work by <em>Ruben van de Ven</em> for the
<em>University of Amsterdam Library</em>. Fonts by
<em>Open Source Publishing</em>, map by <em>OpenStreetMap</em>.
</div>
<svg {width} {height}>
<g id="movements">
{#each drawn_movements as m}
<path d={get_path_d(m)}></path>
{/each}
</g>
<g id="libraries">
{#each valid_nodes as node}
<g id={node.code} transform="translate({node.x}, {node.y})">
<circle r="5"></circle>
<circle r="20"></circle>
<text class="nodeTitle" y="4" x="35">{node.name}</text>
</g>
{/each}
</g>
</svg>
<style>
#about {
position: absolute;
font-size: 8pt;
bottom: 20px;
right: 20px;
width: 450px;
text-align: right;
}
#libraries circle:first-child {
fill: white;
stroke: none;
}
#libraries circle {
fill: none;
stroke: white;
stroke-width: 10;
}
path {
stroke: #bc89ff10;
stroke-width: 2px;
fill: none;
}
text {
fill: white;
font-size: 30pt;
}
/* path:not(.selected) {
opacity: 0;
} */
</style>

31
src/app.css Normal file
View file

@ -0,0 +1,31 @@
/* animation root */
#viz {
width: 100%;
height: 100%;
font-family: "Fluxisch Else";
font-weight: 200;
color: black;
/* background: linear-gradient(180deg, #3a294c 0%, #62487f 100%); */
background: rgb(45, 45, 45);
/* background: linear-gradient(to bottom right, #6fa8d9f7, #cdeed3); */
border-radius: 40px;
}
h1 {
position: absolute;
top: calc(50% - 3em);
text-align: center;
font-weight: 200;
font-size: 140pt;
left: 0;
right: 0;
}
#viz #about {
position: absolute;
font-size: 8pt;
bottom: 20px;
right: 20px;
width: 450px;
text-align: right;
}

10
src/lib/Counter.svelte Normal file
View file

@ -0,0 +1,10 @@
<script lang="ts">
let count: number = 0
const increment = () => {
count += 1
}
</script>
<button on:click={increment}>
count is {count}
</button>

13
src/main.ts Normal file
View file

@ -0,0 +1,13 @@
import './app.css'
import Viz from './Viz.svelte'
const width = 2160
const height = 3840
document.getElementById('canvas')!.style.width = `${width}px`;
document.getElementById('canvas')!.style.height = `${height}px`;
const app = new Viz({
target: document.getElementById('viz')!,
})
export default app

2
src/vite-env.d.ts vendored Normal file
View file

@ -0,0 +1,2 @@
/// <reference types="svelte" />
/// <reference types="vite/client" />

19
src/viz.css Normal file
View file

@ -0,0 +1,19 @@
svg path {
fill: none;
/* stroke: rgba(255, 255, 0, .1); */
stroke: #bc89ff10;
stroke-width: 2px;
}
svg circle{
fill: white;
}
svg text{
fill: white;
font-size: 30pt;
}
path:not(.selected){
opacity:0;
}

7
svelte.config.js Normal file
View file

@ -0,0 +1,7 @@
import { vitePreprocess } from '@sveltejs/vite-plugin-svelte'
export default {
// Consult https://svelte.dev/docs#compile-time-svelte-preprocess
// for more information about preprocessors
preprocess: vitePreprocess(),
}

20
tsconfig.json Normal file
View file

@ -0,0 +1,20 @@
{
"extends": "@tsconfig/svelte/tsconfig.json",
"compilerOptions": {
"target": "ESNext",
"useDefineForClassFields": true,
"module": "ESNext",
"resolveJsonModule": true,
/**
* Typecheck JS in `.svelte` and `.js` files by default.
* Disable checkJs if you'd like to use dynamic types in JS.
* Note that setting allowJs false does not prevent the use
* of JS in `.svelte` files.
*/
"allowJs": true,
"checkJs": true,
"isolatedModules": true
},
"include": ["src/**/*.ts", "src/**/*.js", "src/**/*.svelte"],
"references": [{ "path": "./tsconfig.node.json" }]
}

10
tsconfig.node.json Normal file
View file

@ -0,0 +1,10 @@
{
"compilerOptions": {
"composite": true,
"skipLibCheck": true,
"module": "ESNext",
"moduleResolution": "bundler",
"strict": true
},
"include": ["vite.config.ts"]
}

7
vite.config.ts Normal file
View file

@ -0,0 +1,7 @@
import { defineConfig } from 'vite'
import { svelte } from '@sveltejs/vite-plugin-svelte'
// https://vitejs.dev/config/
export default defineConfig({
plugins: [svelte()],
})