diff --git a/package.json b/package.json index eae2c71..75cf1a5 100644 --- a/package.json +++ b/package.json @@ -24,6 +24,7 @@ "polka": "^1.0.0-next.9", "scroll-out": "^2.2.8", "sirv": "^0.4.2", + "svelte-lazy": "^0.1.10", "swipe-listener": "^1.1.0" }, "devDependencies": { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 7e534a9..2c8f274 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -7,6 +7,7 @@ dependencies: polka: 1.0.0-next.11 scroll-out: 2.2.8 sirv: 0.4.2 + svelte-lazy: 0.1.10 swipe-listener: 1.1.0 devDependencies: '@babel/core': 7.9.0 @@ -72,7 +73,7 @@ packages: gensync: 1.0.0-beta.1 json5: 2.1.3 lodash: 4.17.15 - resolve: 1.15.1 + resolve: 1.16.0 semver: 5.7.1 source-map: 0.5.7 dev: true @@ -698,7 +699,7 @@ packages: '@babel/core': 7.9.0 '@babel/helper-module-imports': 7.8.3 '@babel/helper-plugin-utils': 7.8.3 - resolve: 1.15.1 + resolve: 1.16.0 semver: 5.7.1 dev: true peerDependencies: @@ -917,7 +918,7 @@ packages: estree-walker: 1.0.1 is-reference: 1.1.4 magic-string: 0.25.7 - resolve: 1.15.1 + resolve: 1.16.0 rollup: 2.6.1 dev: true engines: @@ -932,7 +933,7 @@ packages: '@types/resolve': 0.0.8 builtin-modules: 3.1.0 is-module: 1.0.0 - resolve: 1.15.1 + resolve: 1.16.0 rollup: 2.6.1 dev: true engines: @@ -1159,7 +1160,7 @@ packages: /autoprefixer/9.7.6: dependencies: browserslist: 4.11.1 - caniuse-lite: 1.0.30001040 + caniuse-lite: 1.0.30001042 chalk: 2.4.2 normalize-range: 0.1.2 num2fraction: 1.2.2 @@ -1191,7 +1192,7 @@ packages: glob: 7.1.6 pkg-up: 3.1.0 reselect: 4.0.0 - resolve: 1.15.1 + resolve: 1.16.0 dev: true engines: node: '>= 8.0.0' @@ -1239,8 +1240,8 @@ packages: integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== /browserslist/4.11.1: dependencies: - caniuse-lite: 1.0.30001040 - electron-to-chromium: 1.3.403 + caniuse-lite: 1.0.30001042 + electron-to-chromium: 1.3.412 node-releases: 1.1.53 pkg-up: 2.0.0 dev: true @@ -1319,10 +1320,10 @@ packages: node: '>=0.10.0' resolution: integrity: sha1-MvxLn82vhF/N9+c7uXysImHwqwo= - /caniuse-lite/1.0.30001040: + /caniuse-lite/1.0.30001042: dev: true resolution: - integrity: sha512-Ep0tEPeI5wCvmJNrXjE3etgfI+lkl1fTDU6Y3ZH1mhrjkPlVI9W4pcKbMo+BQLpEWKVYYp2EmYaRsqpPC3k7lQ== + integrity: sha512-igMQ4dlqnf4tWv0xjaaE02op9AJ2oQzXKjWf4EuAHFN694Uo9/EfPVIPJcmn2WkU9RqozCxx5e2KPcVClHDbDw== /caseless/0.12.0: dev: true resolution: @@ -1378,10 +1379,10 @@ packages: node: '>=8' resolution: integrity: sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw== - /cli-width/2.2.0: + /cli-width/2.2.1: dev: true resolution: - integrity: sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk= + integrity: sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw== /cliui/3.2.0: dependencies: string-width: 1.0.2 @@ -1670,10 +1671,10 @@ packages: dev: true resolution: integrity: sha1-OoOpBOVDUyh4dMVkt1SThoSamMk= - /electron-to-chromium/1.3.403: + /electron-to-chromium/1.3.412: dev: true resolution: - integrity: sha512-JaoxV4RzdBAZOnsF4dAlZ2ijJW72MbqO5lNfOBHUWiBQl3Rwe+mk2RCUMrRI3rSClLJ8HSNQNqcry12H+0ZjFw== + integrity: sha512-4bVdSeJScR8fT7ERveLWbxemY5uXEHVseqMRyORosiKcTUSGtVwBkV8uLjXCqoFLeImA57Z9hbz3TOid01U4Hw== /emoji-regex/7.0.3: dev: true resolution: @@ -1760,7 +1761,7 @@ packages: /eslint-import-resolver-node/0.3.3: dependencies: debug: 2.6.9 - resolve: 1.15.1 + resolve: 1.16.0 dev: true resolution: integrity: sha512-b8crLDo0M5RSe5YG8Pu2DYBj71tSB6OvXkfzwbJU2w7y8P4/yo0MyF8jU26IEuEuHF2K5/gcAJE3LhQGqBBbVg== @@ -1797,7 +1798,7 @@ packages: minimatch: 3.0.4 object.values: 1.1.1 read-pkg-up: 2.0.0 - resolve: 1.15.1 + resolve: 1.16.0 dev: true engines: node: '>=4' @@ -1811,7 +1812,7 @@ packages: eslint-utils: 2.0.0 ignore: 5.1.4 minimatch: 3.0.4 - resolve: 1.15.1 + resolve: 1.16.0 semver: 6.3.0 dev: true engines: @@ -1884,7 +1885,7 @@ packages: eslint-utils: 1.4.3 eslint-visitor-keys: 1.1.0 espree: 6.2.1 - esquery: 1.2.0 + esquery: 1.3.1 esutils: 2.0.3 file-entry-cache: 5.0.1 functional-red-black-tree: 1.0.1 @@ -1934,14 +1935,14 @@ packages: hasBin: true resolution: integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== - /esquery/1.2.0: + /esquery/1.3.1: dependencies: - estraverse: 5.0.0 + estraverse: 5.1.0 dev: true engines: - node: '>=8.0' + node: '>=0.10' resolution: - integrity: sha512-weltsSqdeWIX9G2qQZz7KlTRJdkkOCTPgLYJUz1Hacf48R4YOwGPHO3+ORfWedqJKbq5WQmsgK90n+pFLIKt/Q== + integrity: sha512-olpvt9QG0vniUBZspVRN6lwB7hOZoTRtT+jzR+tS4ffYx2mzbw+z0XCOk44aaLYKApNX5nMm+E+P6o25ip/DHQ== /esrecurse/4.2.1: dependencies: estraverse: 4.3.0 @@ -1956,12 +1957,12 @@ packages: node: '>=4.0' resolution: integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== - /estraverse/5.0.0: + /estraverse/5.1.0: dev: true engines: node: '>=4.0' resolution: - integrity: sha512-j3acdrMzqrxmJTNj5dbr1YbjacrYgAxVMeF0gK16E3j494mOe7xygM/ZLIguEQ0ETwAg2hlJCtHRGav+y0Ny5A== + integrity: sha512-FyohXK+R0vE+y1nHLoBM7ZTyqRpqAlhdZHCWIWEviFLiGB8b04H6bQs8G+XTthacvT8VuwvteiP7RJSxMs8UEw== /estree-walker/0.6.1: dev: true resolution: @@ -2336,7 +2337,7 @@ packages: graceful-fs: 4.2.3 inherits: 2.0.4 map-limit: 0.0.1 - resolve: 1.15.1 + resolve: 1.16.0 dev: true resolution: integrity: sha512-Ogm179MCazwIRyEqs3g3EOY4Y3XIAa0yl8J5RE9rJC6QH1w8weVOp2RZu0mvnYy/2xIas1w166YR2eZdDkWQxg== @@ -2352,7 +2353,7 @@ packages: glslify-bundle: 5.1.1 glslify-deps: 1.3.1 minimist: 1.2.5 - resolve: 1.15.1 + resolve: 1.16.0 stack-trace: 0.0.9 static-eval: 2.0.5 through2: 2.0.5 @@ -2435,7 +2436,7 @@ packages: he: 1.2.0 param-case: 2.1.1 relateurl: 0.2.7 - uglify-js: 3.8.1 + uglify-js: 3.9.1 dev: true engines: node: '>=6' @@ -2558,7 +2559,7 @@ packages: ansi-escapes: 4.3.1 chalk: 3.0.0 cli-cursor: 3.1.0 - cli-width: 2.2.0 + cli-width: 2.2.1 external-editor: 3.1.0 figures: 3.2.0 lodash: 4.17.15 @@ -3128,7 +3129,7 @@ packages: /normalize-package-data/2.5.0: dependencies: hosted-git-info: 2.8.8 - resolve: 1.15.1 + resolve: 1.16.0 semver: 5.7.1 validate-npm-package-license: 3.0.4 dev: true @@ -3680,7 +3681,7 @@ packages: dependencies: autoprefixer: 9.7.6 browserslist: 4.11.1 - caniuse-lite: 1.0.30001040 + caniuse-lite: 1.0.30001042 css-blank-pseudo: 0.1.4 css-has-pseudo: 0.10.0 css-prefers-color-scheme: 3.1.1 @@ -4044,12 +4045,12 @@ packages: dev: true resolution: integrity: sha1-3ZV5gufnNt699TtYpN2RdUV13UY= - /resolve/1.15.1: + /resolve/1.16.0: dependencies: path-parse: 1.0.6 dev: true resolution: - integrity: sha512-84oo6ZTtoTUpjgNEr5SJyzQhzL72gaRodsSfyxC/AXRvwu0Yse9H8eF9IpGo7b8YetZhlI6v7ZQ6bKBFV/6S7w== + integrity: sha512-LarL/PIKJvc09k1jaeT4kQb/8/7P+qV4qSnN2K80AES+OHdfZELAKVOBjxsvtToT/uLOfFbvYvKfZmV8cee7nA== /restore-cursor/3.1.0: dependencies: onetime: 5.1.0 @@ -4544,6 +4545,10 @@ packages: node: '>=8' resolution: integrity: sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g== + /svelte-lazy/0.1.10: + dev: false + resolution: + integrity: sha512-3MobAvIUe345ZNREDvy/3tsfZMzPcSW+fE7osCVtGOAFeQ25haqQoZhT2c6qxxnWB7oVlTXTHCfEatzAGJi0fQ== /svelte-preprocess/3.7.1_svelte@3.20.1: dependencies: '@types/pug': 2.0.4 @@ -4710,16 +4715,15 @@ packages: dev: true resolution: integrity: sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= - /uglify-js/3.8.1: + /uglify-js/3.9.1: dependencies: commander: 2.20.3 - source-map: 0.6.1 dev: true engines: node: '>=0.8.0' hasBin: true resolution: - integrity: sha512-W7KxyzeaQmZvUFbGj4+YFshhVrMBGSg2IbcYAjGWGvx8DHvJMclbTDMpffdxFUGPBHjIytk7KJUR/KUXstUGDw== + integrity: sha512-JUPoL1jHsc9fOjVFHdQIhqEEJsQvfKDjlubcCilu8U26uZ73qOg8VsN8O1jbuei44ZPlwL7kmbAdM4tzaUvqnA== /unicode-canonical-property-names-ecmascript/1.0.4: dev: true engines: @@ -4925,5 +4929,6 @@ specifiers: scroll-out: ^2.2.8 sirv: ^0.4.2 svelte: ^3.20.1 + svelte-lazy: ^0.1.10 svelte-preprocess: ^3.7.1 swipe-listener: ^1.1.0 diff --git a/rollup.config.js b/rollup.config.js index 22c9949..5485602 100644 --- a/rollup.config.js +++ b/rollup.config.js @@ -130,21 +130,21 @@ export default { /* ** Service worker */ - ...(!dev && { - serviceworker: { - input: sapperConfig.serviceworker.input(), - output: sapperConfig.serviceworker.output(), - plugins: [ - resolve(), - aliases, - replace({ - 'process.browser': true, - ...replaceOptions - }), - commonjs(), - !dev && terser() - ], - onwarn, - } - }) + // ...(!dev && { + // serviceworker: { + // input: sapperConfig.serviceworker.input(), + // output: sapperConfig.serviceworker.output(), + // plugins: [ + // resolve(), + // aliases, + // replace({ + // 'process.browser': true, + // ...replaceOptions + // }), + // commonjs(), + // !dev && terser() + // ], + // onwarn, + // } + // }) } diff --git a/src/animations/place.js b/src/animations/place.js index 551d15c..79b8aad 100644 --- a/src/animations/place.js +++ b/src/animations/place.js @@ -40,8 +40,7 @@ export const animateIn = () => { // Illustration tl.add({ targets: '.place__illustration', - scale: [1.1, 1], - translateX: ['-50%', '-50%'], + scale: [1.05, 1], translateZ: [0, 0], opacity: [0, 1] }, 0) diff --git a/src/molecules/InteractiveGlobe.svelte b/src/molecules/InteractiveGlobe.svelte index 38e1099..7ca7e74 100644 --- a/src/molecules/InteractiveGlobe.svelte +++ b/src/molecules/InteractiveGlobe.svelte @@ -22,30 +22,32 @@ ** Run code when mounted */ onMount(async () => { - // Import libraries and code let InteractiveGlobe - await import('globe/index').then(module => InteractiveGlobe = module.default) - // Init the globe from library - globe = new InteractiveGlobe({ - el: scope, - texture: `/img/globe/map-${window.innerWidth >= 992 ? '3k' : '2k'}.png`, - markers: [...$locations.map(location => { - return { - name: location.name, - slug: location.slug, - countryName: location.country.name, - countrySlug: location.country.slug, - lat: location.coordinates.lat, - lng: location.coordinates.lng - } - })], - cameraDistance: 3, - onLinkClicked: () => {} - }) + if (process.browser) { + // Import libraries and code + await import('globe/index').then(module => InteractiveGlobe = module.default) + // Init the globe from library + globe = new InteractiveGlobe({ + el: scope, + texture: `/img/globe/map-${window.innerWidth >= 992 ? '3k' : '2k'}.png`, + markers: [...$locations.map(location => { + return { + name: location.name, + slug: location.slug, + countryName: location.country.name, + countrySlug: location.country.slug, + lat: location.coordinates.lat, + lng: location.coordinates.lng + } + })], + cameraDistance: 3, + onLinkClicked: () => {} + }) - // Run the globe - resize() - update() + // Run the globe + resize() + update() + } }) diff --git a/src/routes/_error.svelte b/src/routes/_error.svelte index 8a84ed0..3394f33 100644 --- a/src/routes/_error.svelte +++ b/src/routes/_error.svelte @@ -26,22 +26,24 @@ {/if} -
-
-
- - - +
+
+
+
+ + + - + +
+ +
+

Oh no… Looks like something wrong just happened. Like a nasty error {status}.

+
-
-

Oh no… Looks like something wrong just happened. Like a nasty error {status}.

-
-
- -
+