commit
82ca40711b
@ -0,0 +1,4 @@ |
|||||||
|
/node_modules/ |
||||||
|
/public/build/ |
||||||
|
|
||||||
|
.DS_Store |
@ -0,0 +1,10 @@ |
|||||||
|
{ |
||||||
|
"tabWidth": 2, |
||||||
|
"printWidth": 75, |
||||||
|
"semi": false, |
||||||
|
"singleQuote": false, |
||||||
|
"trailingComma": "es5", |
||||||
|
"proseWrap": "always", |
||||||
|
"arrowParens": "avoid", |
||||||
|
"bracketSpacing": true |
||||||
|
} |
@ -0,0 +1,105 @@ |
|||||||
|
*Looking for a shareable component template? Go here --> [sveltejs/component-template](https://github.com/sveltejs/component-template)* |
||||||
|
|
||||||
|
--- |
||||||
|
|
||||||
|
# svelte app |
||||||
|
|
||||||
|
This is a project template for [Svelte](https://svelte.dev) apps. It lives at https://github.com/sveltejs/template. |
||||||
|
|
||||||
|
To create a new project based on this template using [degit](https://github.com/Rich-Harris/degit): |
||||||
|
|
||||||
|
```bash |
||||||
|
npx degit sveltejs/template svelte-app |
||||||
|
cd svelte-app |
||||||
|
``` |
||||||
|
|
||||||
|
*Note that you will need to have [Node.js](https://nodejs.org) installed.* |
||||||
|
|
||||||
|
|
||||||
|
## Get started |
||||||
|
|
||||||
|
Install the dependencies... |
||||||
|
|
||||||
|
```bash |
||||||
|
cd svelte-app |
||||||
|
npm install |
||||||
|
``` |
||||||
|
|
||||||
|
...then start [Rollup](https://rollupjs.org): |
||||||
|
|
||||||
|
```bash |
||||||
|
npm run dev |
||||||
|
``` |
||||||
|
|
||||||
|
Navigate to [localhost:5000](http://localhost:5000). You should see your app running. Edit a component file in `src`, save it, and reload the page to see your changes. |
||||||
|
|
||||||
|
By default, the server will only respond to requests from localhost. To allow connections from other computers, edit the `sirv` commands in package.json to include the option `--host 0.0.0.0`. |
||||||
|
|
||||||
|
If you're using [Visual Studio Code](https://code.visualstudio.com/) we recommend installing the official extension [Svelte for VS Code](https://marketplace.visualstudio.com/items?itemName=svelte.svelte-vscode). If you are using other editors you may need to install a plugin in order to get syntax highlighting and intellisense. |
||||||
|
|
||||||
|
## Building and running in production mode |
||||||
|
|
||||||
|
To create an optimised version of the app: |
||||||
|
|
||||||
|
```bash |
||||||
|
npm run build |
||||||
|
``` |
||||||
|
|
||||||
|
You can run the newly built app with `npm run start`. This uses [sirv](https://github.com/lukeed/sirv), which is included in your package.json's `dependencies` so that the app will work when you deploy to platforms like [Heroku](https://heroku.com). |
||||||
|
|
||||||
|
|
||||||
|
## Single-page app mode |
||||||
|
|
||||||
|
By default, sirv will only respond to requests that match files in `public`. This is to maximise compatibility with static fileservers, allowing you to deploy your app anywhere. |
||||||
|
|
||||||
|
If you're building a single-page app (SPA) with multiple routes, sirv needs to be able to respond to requests for *any* path. You can make it so by editing the `"start"` command in package.json: |
||||||
|
|
||||||
|
```js |
||||||
|
"start": "sirv public --single" |
||||||
|
``` |
||||||
|
|
||||||
|
## Using TypeScript |
||||||
|
|
||||||
|
This template comes with a script to set up a TypeScript development environment, you can run it immediately after cloning the template with: |
||||||
|
|
||||||
|
```bash |
||||||
|
node scripts/setupTypeScript.js |
||||||
|
``` |
||||||
|
|
||||||
|
Or remove the script via: |
||||||
|
|
||||||
|
```bash |
||||||
|
rm scripts/setupTypeScript.js |
||||||
|
``` |
||||||
|
|
||||||
|
## Deploying to the web |
||||||
|
|
||||||
|
### With [Vercel](https://vercel.com) |
||||||
|
|
||||||
|
Install `vercel` if you haven't already: |
||||||
|
|
||||||
|
```bash |
||||||
|
npm install -g vercel |
||||||
|
``` |
||||||
|
|
||||||
|
Then, from within your project folder: |
||||||
|
|
||||||
|
```bash |
||||||
|
cd public |
||||||
|
vercel deploy --name my-project |
||||||
|
``` |
||||||
|
|
||||||
|
### With [surge](https://surge.sh/) |
||||||
|
|
||||||
|
Install `surge` if you haven't already: |
||||||
|
|
||||||
|
```bash |
||||||
|
npm install -g surge |
||||||
|
``` |
||||||
|
|
||||||
|
Then, from within your project folder: |
||||||
|
|
||||||
|
```bash |
||||||
|
npm run build |
||||||
|
surge public my-project.surge.sh |
||||||
|
``` |
@ -0,0 +1,790 @@ |
|||||||
|
{ |
||||||
|
"name": "svelte-app", |
||||||
|
"version": "1.0.0", |
||||||
|
"lockfileVersion": 1, |
||||||
|
"requires": true, |
||||||
|
"dependencies": { |
||||||
|
"@babel/code-frame": { |
||||||
|
"version": "7.12.11", |
||||||
|
"resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz", |
||||||
|
"integrity": "sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==", |
||||||
|
"dev": true, |
||||||
|
"requires": { |
||||||
|
"@babel/highlight": "^7.10.4" |
||||||
|
} |
||||||
|
}, |
||||||
|
"@babel/helper-validator-identifier": { |
||||||
|
"version": "7.12.11", |
||||||
|
"resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz", |
||||||
|
"integrity": "sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw==", |
||||||
|
"dev": true |
||||||
|
}, |
||||||
|
"@babel/highlight": { |
||||||
|
"version": "7.10.4", |
||||||
|
"resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.4.tgz", |
||||||
|
"integrity": "sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==", |
||||||
|
"dev": true, |
||||||
|
"requires": { |
||||||
|
"@babel/helper-validator-identifier": "^7.10.4", |
||||||
|
"chalk": "^2.0.0", |
||||||
|
"js-tokens": "^4.0.0" |
||||||
|
} |
||||||
|
}, |
||||||
|
"@polka/url": { |
||||||
|
"version": "1.0.0-next.11", |
||||||
|
"resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.11.tgz", |
||||||
|
"integrity": "sha512-3NsZsJIA/22P3QUyrEDNA2D133H4j224twJrdipXN38dpnIOzAbUDtOwkcJ5pXmn75w7LSQDjA4tO9dm1XlqlA==" |
||||||
|
}, |
||||||
|
"@rollup/plugin-commonjs": { |
||||||
|
"version": "16.0.0", |
||||||
|
"resolved": "https://registry.npmjs.org/@rollup/plugin-commonjs/-/plugin-commonjs-16.0.0.tgz", |
||||||
|
"integrity": "sha512-LuNyypCP3msCGVQJ7ki8PqYdpjfEkE/xtFa5DqlF+7IBD0JsfMZ87C58heSwIMint58sAUZbt3ITqOmdQv/dXw==", |
||||||
|
"dev": true, |
||||||
|
"requires": { |
||||||
|
"@rollup/pluginutils": "^3.1.0", |
||||||
|
"commondir": "^1.0.1", |
||||||
|
"estree-walker": "^2.0.1", |
||||||
|
"glob": "^7.1.6", |
||||||
|
"is-reference": "^1.2.1", |
||||||
|
"magic-string": "^0.25.7", |
||||||
|
"resolve": "^1.17.0" |
||||||
|
} |
||||||
|
}, |
||||||
|
"@rollup/plugin-node-resolve": { |
||||||
|
"version": "10.0.0", |
||||||
|
"resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-10.0.0.tgz", |
||||||
|
"integrity": "sha512-sNijGta8fqzwA1VwUEtTvWCx2E7qC70NMsDh4ZG13byAXYigBNZMxALhKUSycBks5gupJdq0lFrKumFrRZ8H3A==", |
||||||
|
"dev": true, |
||||||
|
"requires": { |
||||||
|
"@rollup/pluginutils": "^3.1.0", |
||||||
|
"@types/resolve": "1.17.1", |
||||||
|
"builtin-modules": "^3.1.0", |
||||||
|
"deepmerge": "^4.2.2", |
||||||
|
"is-module": "^1.0.0", |
||||||
|
"resolve": "^1.17.0" |
||||||
|
} |
||||||
|
}, |
||||||
|
"@rollup/pluginutils": { |
||||||
|
"version": "3.1.0", |
||||||
|
"resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-3.1.0.tgz", |
||||||
|
"integrity": "sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==", |
||||||
|
"dev": true, |
||||||
|
"requires": { |
||||||
|
"@types/estree": "0.0.39", |
||||||
|
"estree-walker": "^1.0.1", |
||||||
|
"picomatch": "^2.2.2" |
||||||
|
}, |
||||||
|
"dependencies": { |
||||||
|
"estree-walker": { |
||||||
|
"version": "1.0.1", |
||||||
|
"resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz", |
||||||
|
"integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==", |
||||||
|
"dev": true |
||||||
|
} |
||||||
|
} |
||||||
|
}, |
||||||
|
"@types/estree": { |
||||||
|
"version": "0.0.39", |
||||||
|
"resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz", |
||||||
|
"integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==", |
||||||
|
"dev": true |
||||||
|
}, |
||||||
|
"@types/node": { |
||||||
|
"version": "14.14.19", |
||||||
|
"resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.19.tgz", |
||||||
|
"integrity": "sha512-4nhBPStMK04rruRVtVc6cDqhu7S9GZai0fpXgPXrFpcPX6Xul8xnrjSdGB4KPBVYG/R5+fXWdCM8qBoiULWGPQ==", |
||||||
|
"dev": true |
||||||
|
}, |
||||||
|
"@types/resolve": { |
||||||
|
"version": "1.17.1", |
||||||
|
"resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.17.1.tgz", |
||||||
|
"integrity": "sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw==", |
||||||
|
"dev": true, |
||||||
|
"requires": { |
||||||
|
"@types/node": "*" |
||||||
|
} |
||||||
|
}, |
||||||
|
"ansi-styles": { |
||||||
|
"version": "3.2.1", |
||||||
|
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", |
||||||
|
"integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", |
||||||
|
"dev": true, |
||||||
|
"requires": { |
||||||
|
"color-convert": "^1.9.0" |
||||||
|
} |
||||||
|
}, |
||||||
|
"anymatch": { |
||||||
|
"version": "3.1.1", |
||||||
|
"resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz", |
||||||
|
"integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==", |
||||||
|
"dev": true, |
||||||
|
"requires": { |
||||||
|
"normalize-path": "^3.0.0", |
||||||
|
"picomatch": "^2.0.4" |
||||||
|
} |
||||||
|
}, |
||||||
|
"async-limiter": { |
||||||
|
"version": "1.0.1", |
||||||
|
"resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz", |
||||||
|
"integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==", |
||||||
|
"dev": true |
||||||
|
}, |
||||||
|
"balanced-match": { |
||||||
|
"version": "1.0.0", |
||||||
|
"resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", |
||||||
|
"integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", |
||||||
|
"dev": true |
||||||
|
}, |
||||||
|
"binary-extensions": { |
||||||
|
"version": "2.1.0", |
||||||
|
"resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.1.0.tgz", |
||||||
|
"integrity": "sha512-1Yj8h9Q+QDF5FzhMs/c9+6UntbD5MkRfRwac8DoEm9ZfUBZ7tZ55YcGVAzEe4bXsdQHEk+s9S5wsOKVdZrw0tQ==", |
||||||
|
"dev": true |
||||||
|
}, |
||||||
|
"brace-expansion": { |
||||||
|
"version": "1.1.11", |
||||||
|
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", |
||||||
|
"integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", |
||||||
|
"dev": true, |
||||||
|
"requires": { |
||||||
|
"balanced-match": "^1.0.0", |
||||||
|
"concat-map": "0.0.1" |
||||||
|
} |
||||||
|
}, |
||||||
|
"braces": { |
||||||
|
"version": "3.0.2", |
||||||
|
"resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", |
||||||
|
"integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", |
||||||
|
"dev": true, |
||||||
|
"requires": { |
||||||
|
"fill-range": "^7.0.1" |
||||||
|
} |
||||||
|
}, |
||||||
|
"buffer-from": { |
||||||
|
"version": "1.1.1", |
||||||
|
"resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", |
||||||
|
"integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==", |
||||||
|
"dev": true |
||||||
|
}, |
||||||
|
"builtin-modules": { |
||||||
|
"version": "3.2.0", |
||||||
|
"resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.2.0.tgz", |
||||||
|
"integrity": "sha512-lGzLKcioL90C7wMczpkY0n/oART3MbBa8R9OFGE1rJxoVI86u4WAGfEk8Wjv10eKSyTHVGkSo3bvBylCEtk7LA==", |
||||||
|
"dev": true |
||||||
|
}, |
||||||
|
"chalk": { |
||||||
|
"version": "2.4.2", |
||||||
|
"resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", |
||||||
|
"integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", |
||||||
|
"dev": true, |
||||||
|
"requires": { |
||||||
|
"ansi-styles": "^3.2.1", |
||||||
|
"escape-string-regexp": "^1.0.5", |
||||||
|
"supports-color": "^5.3.0" |
||||||
|
} |
||||||
|
}, |
||||||
|
"chokidar": { |
||||||
|
"version": "3.4.3", |
||||||
|
"resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.4.3.tgz", |
||||||
|
"integrity": "sha512-DtM3g7juCXQxFVSNPNByEC2+NImtBuxQQvWlHunpJIS5Ocr0lG306cC7FCi7cEA0fzmybPUIl4txBIobk1gGOQ==", |
||||||
|
"dev": true, |
||||||
|
"requires": { |
||||||
|
"anymatch": "~3.1.1", |
||||||
|
"braces": "~3.0.2", |
||||||
|
"fsevents": "~2.1.2", |
||||||
|
"glob-parent": "~5.1.0", |
||||||
|
"is-binary-path": "~2.1.0", |
||||||
|
"is-glob": "~4.0.1", |
||||||
|
"normalize-path": "~3.0.0", |
||||||
|
"readdirp": "~3.5.0" |
||||||
|
} |
||||||
|
}, |
||||||
|
"color-convert": { |
||||||
|
"version": "1.9.3", |
||||||
|
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", |
||||||
|
"integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", |
||||||
|
"dev": true, |
||||||
|
"requires": { |
||||||
|
"color-name": "1.1.3" |
||||||
|
} |
||||||
|
}, |
||||||
|
"color-name": { |
||||||
|
"version": "1.1.3", |
||||||
|
"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", |
||||||
|
"integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", |
||||||
|
"dev": true |
||||||
|
}, |
||||||
|
"commander": { |
||||||
|
"version": "2.20.3", |
||||||
|
"resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", |
||||||
|
"integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", |
||||||
|
"dev": true |
||||||
|
}, |
||||||
|
"commondir": { |
||||||
|
"version": "1.0.1", |
||||||
|
"resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", |
||||||
|
"integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", |
||||||
|
"dev": true |
||||||
|
}, |
||||||
|
"concat-map": { |
||||||
|
"version": "0.0.1", |
||||||
|
"resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", |
||||||
|
"integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", |
||||||
|
"dev": true |
||||||
|
}, |
||||||
|
"console-clear": { |
||||||
|
"version": "1.1.1", |
||||||
|
"resolved": "https://registry.npmjs.org/console-clear/-/console-clear-1.1.1.tgz", |
||||||
|
"integrity": "sha512-pMD+MVR538ipqkG5JXeOEbKWS5um1H4LUUccUQG68qpeqBYbzYy79Gh55jkd2TtPdRfUaLWdv6LPP//5Zt0aPQ==" |
||||||
|
}, |
||||||
|
"deepmerge": { |
||||||
|
"version": "4.2.2", |
||||||
|
"resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", |
||||||
|
"integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==", |
||||||
|
"dev": true |
||||||
|
}, |
||||||
|
"escape-string-regexp": { |
||||||
|
"version": "1.0.5", |
||||||
|
"resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", |
||||||
|
"integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", |
||||||
|
"dev": true |
||||||
|
}, |
||||||
|
"estree-walker": { |
||||||
|
"version": "2.0.2", |
||||||
|
"resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", |
||||||
|
"integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", |
||||||
|
"dev": true |
||||||
|
}, |
||||||
|
"fill-range": { |
||||||
|
"version": "7.0.1", |
||||||
|
"resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", |
||||||
|
"integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", |
||||||
|
"dev": true, |
||||||
|
"requires": { |
||||||
|
"to-regex-range": "^5.0.1" |
||||||
|
} |
||||||
|
}, |
||||||
|
"fs.realpath": { |
||||||
|
"version": "1.0.0", |
||||||
|
"resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", |
||||||
|
"integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", |
||||||
|
"dev": true |
||||||
|
}, |
||||||
|
"fsevents": { |
||||||
|
"version": "2.1.3", |
||||||
|
"resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.3.tgz", |
||||||
|
"integrity": "sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==", |
||||||
|
"dev": true, |
||||||
|
"optional": true |
||||||
|
}, |
||||||
|
"function-bind": { |
||||||
|
"version": "1.1.1", |
||||||
|
"resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", |
||||||
|
"integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", |
||||||
|
"dev": true |
||||||
|
}, |
||||||
|
"get-port": { |
||||||
|
"version": "3.2.0", |
||||||
|
"resolved": "https://registry.npmjs.org/get-port/-/get-port-3.2.0.tgz", |
||||||
|
"integrity": "sha1-3Xzn3hh8Bsi/NTeWrHHgmfCYDrw=" |
||||||
|
}, |
||||||
|
"glob": { |
||||||
|
"version": "7.1.6", |
||||||
|
"resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", |
||||||
|
"integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", |
||||||
|
"dev": true, |
||||||
|
"requires": { |
||||||
|
"fs.realpath": "^1.0.0", |
||||||
|
"inflight": "^1.0.4", |
||||||
|
"inherits": "2", |
||||||
|
"minimatch": "^3.0.4", |
||||||
|
"once": "^1.3.0", |
||||||
|
"path-is-absolute": "^1.0.0" |
||||||
|
} |
||||||
|
}, |
||||||
|
"glob-parent": { |
||||||
|
"version": "5.1.1", |
||||||
|
"resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz", |
||||||
|
"integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==", |
||||||
|
"dev": true, |
||||||
|
"requires": { |
||||||
|
"is-glob": "^4.0.1" |
||||||
|
} |
||||||
|
}, |
||||||
|
"has": { |
||||||
|
"version": "1.0.3", |
||||||
|
"resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", |
||||||
|
"integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", |
||||||
|
"dev": true, |
||||||
|
"requires": { |
||||||
|
"function-bind": "^1.1.1" |
||||||
|
} |
||||||
|
}, |
||||||
|
"has-flag": { |
||||||
|
"version": "3.0.0", |
||||||
|
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", |
||||||
|
"integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", |
||||||
|
"dev": true |
||||||
|
}, |
||||||
|
"inflight": { |
||||||
|
"version": "1.0.6", |
||||||
|
"resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", |
||||||
|
"integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", |
||||||
|
"dev": true, |
||||||
|
"requires": { |
||||||
|
"once": "^1.3.0", |
||||||
|
"wrappy": "1" |
||||||
|
} |
||||||
|
}, |
||||||
|
"inherits": { |
||||||
|
"version": "2.0.4", |
||||||
|
"resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", |
||||||
|
"integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", |
||||||
|
"dev": true |
||||||
|
}, |
||||||
|
"is-binary-path": { |
||||||
|
"version": "2.1.0", |
||||||
|
"resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", |
||||||
|
"integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", |
||||||
|
"dev": true, |
||||||
|
"requires": { |
||||||
|
"binary-extensions": "^2.0.0" |
||||||
|
} |
||||||
|
}, |
||||||
|
"is-core-module": { |
||||||
|
"version": "2.2.0", |
||||||
|
"resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.2.0.tgz", |
||||||
|
"integrity": "sha512-XRAfAdyyY5F5cOXn7hYQDqh2Xmii+DEfIcQGxK/uNwMHhIkPWO0g8msXcbzLe+MpGoR951MlqM/2iIlU4vKDdQ==", |
||||||
|
"dev": true, |
||||||
|
"requires": { |
||||||
|
"has": "^1.0.3" |
||||||
|
} |
||||||
|
}, |
||||||
|
"is-extglob": { |
||||||
|
"version": "2.1.1", |
||||||
|
"resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", |
||||||
|
"integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", |
||||||
|
"dev": true |
||||||
|
}, |
||||||
|
"is-glob": { |
||||||
|
"version": "4.0.1", |
||||||
|
"resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", |
||||||
|
"integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", |
||||||
|
"dev": true, |
||||||
|
"requires": { |
||||||
|
"is-extglob": "^2.1.1" |
||||||
|
} |
||||||
|
}, |
||||||
|
"is-module": { |
||||||
|
"version": "1.0.0", |
||||||
|
"resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz", |
||||||
|
"integrity": "sha1-Mlj7afeMFNW4FdZkM2tM/7ZEFZE=", |
||||||
|
"dev": true |
||||||
|
}, |
||||||
|
"is-number": { |
||||||
|
"version": "7.0.0", |
||||||
|
"resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", |
||||||
|
"integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", |
||||||
|
"dev": true |
||||||
|
}, |
||||||
|
"is-reference": { |
||||||
|
"version": "1.2.1", |
||||||
|
"resolved": "https://registry.npmjs.org/is-reference/-/is-reference-1.2.1.tgz", |
||||||
|
"integrity": "sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==", |
||||||
|
"dev": true, |
||||||
|
"requires": { |
||||||
|
"@types/estree": "*" |
||||||
|
} |
||||||
|
}, |
||||||
|
"jest-worker": { |
||||||
|
"version": "26.6.2", |
||||||
|
"resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-26.6.2.tgz", |
||||||
|
"integrity": "sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==", |
||||||
|
"dev": true, |
||||||
|
"requires": { |
||||||
|
"@types/node": "*", |
||||||
|
"merge-stream": "^2.0.0", |
||||||
|
"supports-color": "^7.0.0" |
||||||
|
}, |
||||||
|
"dependencies": { |
||||||
|
"has-flag": { |
||||||
|
"version": "4.0.0", |
||||||
|
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", |
||||||
|
"integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", |
||||||
|
"dev": true |
||||||
|
}, |
||||||
|
"supports-color": { |
||||||
|
"version": "7.2.0", |
||||||
|
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", |
||||||
|
"integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", |
||||||
|
"dev": true, |
||||||
|
"requires": { |
||||||
|
"has-flag": "^4.0.0" |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
}, |
||||||
|
"js-tokens": { |
||||||
|
"version": "4.0.0", |
||||||
|
"resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", |
||||||
|
"integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", |
||||||
|
"dev": true |
||||||
|
}, |
||||||
|
"kleur": { |
||||||
|
"version": "3.0.3", |
||||||
|
"resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", |
||||||
|
"integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==" |
||||||
|
}, |
||||||
|
"livereload": { |
||||||
|
"version": "0.9.1", |
||||||
|
"resolved": "https://registry.npmjs.org/livereload/-/livereload-0.9.1.tgz", |
||||||
|
"integrity": "sha512-9g7sua11kkyZNo2hLRCG3LuZZwqexoyEyecSlV8cAsfAVVCZqLzVir6XDqmH0r+Vzgnd5LrdHDMyjtFnJQLAYw==", |
||||||
|
"dev": true, |
||||||
|
"requires": { |
||||||
|
"chokidar": "^3.3.0", |
||||||
|
"livereload-js": "^3.1.0", |
||||||
|
"opts": ">= 1.2.0", |
||||||
|
"ws": "^6.2.1" |
||||||
|
} |
||||||
|
}, |
||||||
|
"livereload-js": { |
||||||
|
"version": "3.3.1", |
||||||
|
"resolved": "https://registry.npmjs.org/livereload-js/-/livereload-js-3.3.1.tgz", |
||||||
|
"integrity": "sha512-CBu1gTEfzVhlOK1WASKAAJ9Qx1fHECTq0SUB67sfxwQssopTyvzqTlgl+c0h9pZ6V+Fzd2rc510ppuNusg9teQ==", |
||||||
|
"dev": true |
||||||
|
}, |
||||||
|
"local-access": { |
||||||
|
"version": "1.1.0", |
||||||
|
"resolved": "https://registry.npmjs.org/local-access/-/local-access-1.1.0.tgz", |
||||||
|
"integrity": "sha512-XfegD5pyTAfb+GY6chk283Ox5z8WexG56OvM06RWLpAc/UHozO8X6xAxEkIitZOtsSMM1Yr3DkHgW5W+onLhCw==" |
||||||
|
}, |
||||||
|
"magic-string": { |
||||||
|
"version": "0.25.7", |
||||||
|
"resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.7.tgz", |
||||||
|
"integrity": "sha512-4CrMT5DOHTDk4HYDlzmwu4FVCcIYI8gauveasrdCu2IKIFOJ3f0v/8MDGJCDL9oD2ppz/Av1b0Nj345H9M+XIA==", |
||||||
|
"dev": true, |
||||||
|
"requires": { |
||||||
|
"sourcemap-codec": "^1.4.4" |
||||||
|
} |
||||||
|
}, |
||||||
|
"merge-stream": { |
||||||
|
"version": "2.0.0", |
||||||
|
"resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", |
||||||
|
"integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", |
||||||
|
"dev": true |
||||||
|
}, |
||||||
|
"mime": { |
||||||
|
"version": "2.4.7", |
||||||
|
"resolved": "https://registry.npmjs.org/mime/-/mime-2.4.7.tgz", |
||||||
|
"integrity": "sha512-dhNd1uA2u397uQk3Nv5LM4lm93WYDUXFn3Fu291FJerns4jyTudqhIWe4W04YLy7Uk1tm1Ore04NpjRvQp/NPA==" |
||||||
|
}, |
||||||
|
"minimatch": { |
||||||
|
"version": "3.0.4", |
||||||
|
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", |
||||||
|
"integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", |
||||||
|
"dev": true, |
||||||
|
"requires": { |
||||||
|
"brace-expansion": "^1.1.7" |
||||||
|
} |
||||||
|
}, |
||||||
|
"mri": { |
||||||
|
"version": "1.1.6", |
||||||
|
"resolved": "https://registry.npmjs.org/mri/-/mri-1.1.6.tgz", |
||||||
|
"integrity": "sha512-oi1b3MfbyGa7FJMP9GmLTttni5JoICpYBRlq+x5V16fZbLsnL9N3wFqqIm/nIG43FjUFkFh9Epzp/kzUGUnJxQ==" |
||||||
|
}, |
||||||
|
"normalize-path": { |
||||||
|
"version": "3.0.0", |
||||||
|
"resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", |
||||||
|
"integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", |
||||||
|
"dev": true |
||||||
|
}, |
||||||
|
"once": { |
||||||
|
"version": "1.4.0", |
||||||
|
"resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", |
||||||
|
"integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", |
||||||
|
"dev": true, |
||||||
|
"requires": { |
||||||
|
"wrappy": "1" |
||||||
|
} |
||||||
|
}, |
||||||
|
"opts": { |
||||||
|
"version": "2.0.2", |
||||||
|
"resolved": "https://registry.npmjs.org/opts/-/opts-2.0.2.tgz", |
||||||
|
"integrity": "sha512-k41FwbcLnlgnFh69f4qdUfvDQ+5vaSDnVPFI/y5XuhKRq97EnVVneO9F1ESVCdiVu4fCS2L8usX3mU331hB7pg==", |
||||||
|
"dev": true |
||||||
|
}, |
||||||
|
"path-is-absolute": { |
||||||
|
"version": "1.0.1", |
||||||
|
"resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", |
||||||
|
"integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", |
||||||
|
"dev": true |
||||||
|
}, |
||||||
|
"path-parse": { |
||||||
|
"version": "1.0.6", |
||||||
|
"resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", |
||||||
|
"integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==", |
||||||
|
"dev": true |
||||||
|
}, |
||||||
|
"picomatch": { |
||||||
|
"version": "2.2.2", |
||||||
|
"resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz", |
||||||
|
"integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==", |
||||||
|
"dev": true |
||||||
|
}, |
||||||
|
"randombytes": { |
||||||
|
"version": "2.1.0", |
||||||
|
"resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", |
||||||
|
"integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", |
||||||
|
"dev": true, |
||||||
|
"requires": { |
||||||
|
"safe-buffer": "^5.1.0" |
||||||
|
} |
||||||
|
}, |
||||||
|
"readdirp": { |
||||||
|
"version": "3.5.0", |
||||||
|
"resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.5.0.tgz", |
||||||
|
"integrity": "sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ==", |
||||||
|
"dev": true, |
||||||
|
"requires": { |
||||||
|
"picomatch": "^2.2.1" |
||||||
|
} |
||||||
|
}, |
||||||
|
"require-relative": { |
||||||
|
"version": "0.8.7", |
||||||
|
"resolved": "https://registry.npmjs.org/require-relative/-/require-relative-0.8.7.tgz", |
||||||
|
"integrity": "sha1-eZlTn8ngR6N5KPoZb44VY9q9Nt4=", |
||||||
|
"dev": true |
||||||
|
}, |
||||||
|
"resolve": { |
||||||
|
"version": "1.19.0", |
||||||
|
"resolved": "https://registry.npmjs.org/resolve/-/resolve-1.19.0.tgz", |
||||||
|
"integrity": "sha512-rArEXAgsBG4UgRGcynxWIWKFvh/XZCcS8UJdHhwy91zwAvCZIbcs+vAbflgBnNjYMs/i/i+/Ux6IZhML1yPvxg==", |
||||||
|
"dev": true, |
||||||
|
"requires": { |
||||||
|
"is-core-module": "^2.1.0", |
||||||
|
"path-parse": "^1.0.6" |
||||||
|
} |
||||||
|
}, |
||||||
|
"rollup": { |
||||||
|
"version": "2.35.1", |
||||||
|
"resolved": "https://registry.npmjs.org/rollup/-/rollup-2.35.1.tgz", |
||||||
|
"integrity": "sha512-q5KxEyWpprAIcainhVy6HfRttD9kutQpHbeqDTWnqAFNJotiojetK6uqmcydNMymBEtC4I8bCYR+J3mTMqeaUA==", |
||||||
|
"dev": true, |
||||||
|
"requires": { |
||||||
|
"fsevents": "~2.1.2" |
||||||
|
} |
||||||
|
}, |
||||||
|
"rollup-plugin-css-only": { |
||||||
|
"version": "3.1.0", |
||||||
|
"resolved": "https://registry.npmjs.org/rollup-plugin-css-only/-/rollup-plugin-css-only-3.1.0.tgz", |
||||||
|
"integrity": "sha512-TYMOE5uoD76vpj+RTkQLzC9cQtbnJNktHPB507FzRWBVaofg7KhIqq1kGbcVOadARSozWF883Ho9KpSPKH8gqA==", |
||||||
|
"dev": true, |
||||||
|
"requires": { |
||||||
|
"@rollup/pluginutils": "4" |
||||||
|
}, |
||||||
|
"dependencies": { |
||||||
|
"@rollup/pluginutils": { |
||||||
|
"version": "4.1.0", |
||||||
|
"resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-4.1.0.tgz", |
||||||
|
"integrity": "sha512-TrBhfJkFxA+ER+ew2U2/fHbebhLT/l/2pRk0hfj9KusXUuRXd2v0R58AfaZK9VXDQ4TogOSEmICVrQAA3zFnHQ==", |
||||||
|
"dev": true, |
||||||
|
"requires": { |
||||||
|
"estree-walker": "^2.0.1", |
||||||
|
"picomatch": "^2.2.2" |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
}, |
||||||
|
"rollup-plugin-livereload": { |
||||||
|
"version": "2.0.0", |
||||||
|
"resolved": "https://registry.npmjs.org/rollup-plugin-livereload/-/rollup-plugin-livereload-2.0.0.tgz", |
||||||
|
"integrity": "sha512-oC/8NqumGYuphkqrfszOHUUIwzKsaHBICw6QRwT5uD07gvePTS+HW+GFwu6f9K8W02CUuTvtIM9AWJrbj4wE1A==", |
||||||
|
"dev": true, |
||||||
|
"requires": { |
||||||
|
"livereload": "^0.9.1" |
||||||
|
} |
||||||
|
}, |
||||||
|
"rollup-plugin-svelte": { |
||||||
|
"version": "7.0.0", |
||||||
|
"resolved": "https://registry.npmjs.org/rollup-plugin-svelte/-/rollup-plugin-svelte-7.0.0.tgz", |
||||||
|
"integrity": "sha512-cw4yv/5v1NQV3nPbpOJtikgkB+9mfSJaqKUdq7x5fVQJnwLtcdc2JOszBs5pBY+SemTs5pmJbdEMseEavbUtjQ==", |
||||||
|
"dev": true, |
||||||
|
"requires": { |
||||||
|
"require-relative": "^0.8.7", |
||||||
|
"rollup-pluginutils": "^2.8.2" |
||||||
|
} |
||||||
|
}, |
||||||
|
"rollup-plugin-terser": { |
||||||
|
"version": "7.0.2", |
||||||
|
"resolved": "https://registry.npmjs.org/rollup-plugin-terser/-/rollup-plugin-terser-7.0.2.tgz", |
||||||
|
"integrity": "sha512-w3iIaU4OxcF52UUXiZNsNeuXIMDvFrr+ZXK6bFZ0Q60qyVfq4uLptoS4bbq3paG3x216eQllFZX7zt6TIImguQ==", |
||||||
|
"dev": true, |
||||||
|
"requires": { |
||||||
|
"@babel/code-frame": "^7.10.4", |
||||||
|
"jest-worker": "^26.2.1", |
||||||
|
"serialize-javascript": "^4.0.0", |
||||||
|
"terser": "^5.0.0" |
||||||
|
} |
||||||
|
}, |
||||||
|
"rollup-pluginutils": { |
||||||
|
"version": "2.8.2", |
||||||
|
"resolved": "https://registry.npmjs.org/rollup-pluginutils/-/rollup-pluginutils-2.8.2.tgz", |
||||||
|
"integrity": "sha512-EEp9NhnUkwY8aif6bxgovPHMoMoNr2FulJziTndpt5H9RdwC47GSGuII9XxpSdzVGM0GWrNPHV6ie1LTNJPaLQ==", |
||||||
|
"dev": true, |
||||||
|
"requires": { |
||||||
|
"estree-walker": "^0.6.1" |
||||||
|
}, |
||||||
|
"dependencies": { |
||||||
|
"estree-walker": { |
||||||
|
"version": "0.6.1", |
||||||
|
"resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-0.6.1.tgz", |
||||||
|
"integrity": "sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w==", |
||||||
|
"dev": true |
||||||
|
} |
||||||
|
} |
||||||
|
}, |
||||||
|
"sade": { |
||||||
|
"version": "1.7.4", |
||||||
|
"resolved": "https://registry.npmjs.org/sade/-/sade-1.7.4.tgz", |
||||||
|
"integrity": "sha512-y5yauMD93rX840MwUJr7C1ysLFBgMspsdTo4UVrDg3fXDvtwOyIqykhVAAm6fk/3au77773itJStObgK+LKaiA==", |
||||||
|
"requires": { |
||||||
|
"mri": "^1.1.0" |
||||||
|
} |
||||||
|
}, |
||||||
|
"safe-buffer": { |
||||||
|
"version": "5.2.1", |
||||||
|
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", |
||||||
|
"integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", |
||||||
|
"dev": true |
||||||
|
}, |
||||||
|
"semiver": { |
||||||
|
"version": "1.1.0", |
||||||
|
"resolved": "https://registry.npmjs.org/semiver/-/semiver-1.1.0.tgz", |
||||||
|
"integrity": "sha512-QNI2ChmuioGC1/xjyYwyZYADILWyW6AmS1UH6gDj/SFUUUS4MBAWs/7mxnkRPc/F4iHezDP+O8t0dO8WHiEOdg==" |
||||||
|
}, |
||||||
|
"serialize-javascript": { |
||||||
|
"version": "4.0.0", |
||||||
|
"resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-4.0.0.tgz", |
||||||
|
"integrity": "sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==", |
||||||
|
"dev": true, |
||||||
|
"requires": { |
||||||
|
"randombytes": "^2.1.0" |
||||||
|
} |
||||||
|
}, |
||||||
|
"sirv": { |
||||||
|
"version": "1.0.10", |
||||||
|
"resolved": "https://registry.npmjs.org/sirv/-/sirv-1.0.10.tgz", |
||||||
|
"integrity": "sha512-H5EZCoZaggEUQy8ocKsF7WAToGuZhjJlLvM3XOef46CbdIgbNeQ1p32N1PCuCjkVYwrAVOSMacN6CXXgIzuspg==", |
||||||
|
"requires": { |
||||||
|
"@polka/url": "^1.0.0-next.9", |
||||||
|
"mime": "^2.3.1", |
||||||
|
"totalist": "^1.0.0" |
||||||
|
} |
||||||
|
}, |
||||||
|
"sirv-cli": { |
||||||
|
"version": "1.0.10", |
||||||
|
"resolved": "https://registry.npmjs.org/sirv-cli/-/sirv-cli-1.0.10.tgz", |
||||||
|
"integrity": "sha512-8mLTRkvzpZXMyUZJ1whf84YHN/mm2r2+j5sU1ZYr5n2jA8VkFItNPk53oysOo+0QxBVp9aUjggkAsQp1d7L3OQ==", |
||||||
|
"requires": { |
||||||
|
"console-clear": "^1.1.0", |
||||||
|
"get-port": "^3.2.0", |
||||||
|
"kleur": "^3.0.0", |
||||||
|
"local-access": "^1.0.1", |
||||||
|
"sade": "^1.6.0", |
||||||
|
"semiver": "^1.0.0", |
||||||
|
"sirv": "^1.0.10", |
||||||
|
"tinydate": "^1.0.0" |
||||||
|
} |
||||||
|
}, |
||||||
|
"source-map": { |
||||||
|
"version": "0.7.3", |
||||||
|
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", |
||||||
|
"integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", |
||||||
|
"dev": true |
||||||
|
}, |
||||||
|
"source-map-support": { |
||||||
|
"version": "0.5.19", |
||||||
|
"resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz", |
||||||
|
"integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==", |
||||||
|
"dev": true, |
||||||
|
"requires": { |
||||||
|
"buffer-from": "^1.0.0", |
||||||
|
"source-map": "^0.6.0" |
||||||
|
}, |
||||||
|
"dependencies": { |
||||||
|
"source-map": { |
||||||
|
"version": "0.6.1", |
||||||
|
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", |
||||||
|
"integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", |
||||||
|
"dev": true |
||||||
|
} |
||||||
|
} |
||||||
|
}, |
||||||
|
"sourcemap-codec": { |
||||||
|
"version": "1.4.8", |
||||||
|
"resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", |
||||||
|
"integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==", |
||||||
|
"dev": true |
||||||
|
}, |
||||||
|
"supports-color": { |
||||||
|
"version": "5.5.0", |
||||||
|
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", |
||||||
|
"integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", |
||||||
|
"dev": true, |
||||||
|
"requires": { |
||||||
|
"has-flag": "^3.0.0" |
||||||
|
} |
||||||
|
}, |
||||||
|
"svelte": { |
||||||
|
"version": "3.31.1", |
||||||
|
"resolved": "https://registry.npmjs.org/svelte/-/svelte-3.31.1.tgz", |
||||||
|
"integrity": "sha512-Q8xVz5U/IFFNjgvVSjdzKJPAX0MFytFwiJo1HAPfGwM7LkHA+BN2q2kL8vKcJwjku7/509MapLov8C9SjogNRg==", |
||||||
|
"dev": true |
||||||
|
}, |
||||||
|
"terser": { |
||||||
|
"version": "5.5.1", |
||||||
|
"resolved": "https://registry.npmjs.org/terser/-/terser-5.5.1.tgz", |
||||||
|
"integrity": "sha512-6VGWZNVP2KTUcltUQJ25TtNjx/XgdDsBDKGt8nN0MpydU36LmbPPcMBd2kmtZNNGVVDLg44k7GKeHHj+4zPIBQ==", |
||||||
|
"dev": true, |
||||||
|
"requires": { |
||||||
|
"commander": "^2.20.0", |
||||||
|
"source-map": "~0.7.2", |
||||||
|
"source-map-support": "~0.5.19" |
||||||
|
} |
||||||
|
}, |
||||||
|
"tinydate": { |
||||||
|
"version": "1.3.0", |
||||||
|
"resolved": "https://registry.npmjs.org/tinydate/-/tinydate-1.3.0.tgz", |
||||||
|
"integrity": "sha512-7cR8rLy2QhYHpsBDBVYnnWXm8uRTr38RoZakFSW7Bs7PzfMPNZthuMLkwqZv7MTu8lhQ91cOFYS5a7iFj2oR3w==" |
||||||
|
}, |
||||||
|
"to-regex-range": { |
||||||
|
"version": "5.0.1", |
||||||
|
"resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", |
||||||
|
"integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", |
||||||
|
"dev": true, |
||||||
|
"requires": { |
||||||
|
"is-number": "^7.0.0" |
||||||
|
} |
||||||
|
}, |
||||||
|
"totalist": { |
||||||
|
"version": "1.1.0", |
||||||
|
"resolved": "https://registry.npmjs.org/totalist/-/totalist-1.1.0.tgz", |
||||||
|
"integrity": "sha512-gduQwd1rOdDMGxFG1gEvhV88Oirdo2p+KjoYFU7k2g+i7n6AFFbDQ5kMPUsW0pNbfQsB/cwXvT1i4Bue0s9g5g==" |
||||||
|
}, |
||||||
|
"wrappy": { |
||||||
|
"version": "1.0.2", |
||||||
|
"resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", |
||||||
|
"integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", |
||||||
|
"dev": true |
||||||
|
}, |
||||||
|
"ws": { |
||||||
|
"version": "6.2.1", |
||||||
|
"resolved": "https://registry.npmjs.org/ws/-/ws-6.2.1.tgz", |
||||||
|
"integrity": "sha512-GIyAXC2cB7LjvpgMt9EKS2ldqr0MTrORaleiOno6TweZ6r3TKtoFQWay/2PceJ3RuBasOHzXNn5Lrw1X0bEjqA==", |
||||||
|
"dev": true, |
||||||
|
"requires": { |
||||||
|
"async-limiter": "~1.0.0" |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,22 @@ |
|||||||
|
{ |
||||||
|
"name": "svelte-app", |
||||||
|
"version": "1.0.0", |
||||||
|
"scripts": { |
||||||
|
"build": "rollup -c", |
||||||
|
"dev": "rollup -c -w", |
||||||
|
"start": "sirv public" |
||||||
|
}, |
||||||
|
"devDependencies": { |
||||||
|
"@rollup/plugin-commonjs": "^16.0.0", |
||||||
|
"@rollup/plugin-node-resolve": "^10.0.0", |
||||||
|
"rollup": "^2.3.4", |
||||||
|
"rollup-plugin-css-only": "^3.1.0", |
||||||
|
"rollup-plugin-livereload": "^2.0.0", |
||||||
|
"rollup-plugin-svelte": "^7.0.0", |
||||||
|
"rollup-plugin-terser": "^7.0.0", |
||||||
|
"svelte": "^3.31.1" |
||||||
|
}, |
||||||
|
"dependencies": { |
||||||
|
"sirv-cli": "^1.0.0" |
||||||
|
} |
||||||
|
} |
After Width: | Height: | Size: 3.1 KiB |
@ -0,0 +1,63 @@ |
|||||||
|
html, body { |
||||||
|
position: relative; |
||||||
|
width: 100%; |
||||||
|
height: 100%; |
||||||
|
} |
||||||
|
|
||||||
|
body { |
||||||
|
color: #333; |
||||||
|
margin: 0; |
||||||
|
padding: 8px; |
||||||
|
box-sizing: border-box; |
||||||
|
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif; |
||||||
|
} |
||||||
|
|
||||||
|
a { |
||||||
|
color: rgb(0,100,200); |
||||||
|
text-decoration: none; |
||||||
|
} |
||||||
|
|
||||||
|
a:hover { |
||||||
|
text-decoration: underline; |
||||||
|
} |
||||||
|
|
||||||
|
a:visited { |
||||||
|
color: rgb(0,80,160); |
||||||
|
} |
||||||
|
|
||||||
|
label { |
||||||
|
display: block; |
||||||
|
} |
||||||
|
|
||||||
|
input, button, select, textarea { |
||||||
|
font-family: inherit; |
||||||
|
font-size: inherit; |
||||||
|
-webkit-padding: 0.4em 0; |
||||||
|
padding: 0.4em; |
||||||
|
margin: 0 0 0.5em 0; |
||||||
|
box-sizing: border-box; |
||||||
|
border: 1px solid #ccc; |
||||||
|
border-radius: 2px; |
||||||
|
} |
||||||
|
|
||||||
|
input:disabled { |
||||||
|
color: #ccc; |
||||||
|
} |
||||||
|
|
||||||
|
button { |
||||||
|
color: #333; |
||||||
|
background-color: #f4f4f4; |
||||||
|
outline: none; |
||||||
|
} |
||||||
|
|
||||||
|
button:disabled { |
||||||
|
color: #999; |
||||||
|
} |
||||||
|
|
||||||
|
button:not(:disabled):active { |
||||||
|
background-color: #ddd; |
||||||
|
} |
||||||
|
|
||||||
|
button:focus { |
||||||
|
border-color: #666; |
||||||
|
} |
@ -0,0 +1,18 @@ |
|||||||
|
<!DOCTYPE html> |
||||||
|
<html lang="en"> |
||||||
|
<head> |
||||||
|
<meta charset='utf-8'> |
||||||
|
<meta name='viewport' content='width=device-width,initial-scale=1'> |
||||||
|
|
||||||
|
<title>Svelte app</title> |
||||||
|
|
||||||
|
<link rel='icon' type='image/png' href='/favicon.png'> |
||||||
|
<link rel='stylesheet' href='/global.css'> |
||||||
|
<link rel='stylesheet' href='/build/bundle.css'> |
||||||
|
|
||||||
|
<script defer src='/build/bundle.js'></script> |
||||||
|
</head> |
||||||
|
|
||||||
|
<body> |
||||||
|
</body> |
||||||
|
</html> |
@ -0,0 +1,76 @@ |
|||||||
|
import svelte from 'rollup-plugin-svelte'; |
||||||
|
import commonjs from '@rollup/plugin-commonjs'; |
||||||
|
import resolve from '@rollup/plugin-node-resolve'; |
||||||
|
import livereload from 'rollup-plugin-livereload'; |
||||||
|
import { terser } from 'rollup-plugin-terser'; |
||||||
|
import css from 'rollup-plugin-css-only'; |
||||||
|
|
||||||
|
const production = !process.env.ROLLUP_WATCH; |
||||||
|
|
||||||
|
function serve() { |
||||||
|
let server; |
||||||
|
|
||||||
|
function toExit() { |
||||||
|
if (server) server.kill(0); |
||||||
|
} |
||||||
|
|
||||||
|
return { |
||||||
|
writeBundle() { |
||||||
|
if (server) return; |
||||||
|
server = require('child_process').spawn('npm', ['run', 'start', '--', '--dev'], { |
||||||
|
stdio: ['ignore', 'inherit', 'inherit'], |
||||||
|
shell: true |
||||||
|
}); |
||||||
|
|
||||||
|
process.on('SIGTERM', toExit); |
||||||
|
process.on('exit', toExit); |
||||||
|
} |
||||||
|
}; |
||||||
|
} |
||||||
|
|
||||||
|
export default { |
||||||
|
input: 'src/main.js', |
||||||
|
output: { |
||||||
|
sourcemap: true, |
||||||
|
format: 'iife', |
||||||
|
name: 'app', |
||||||
|
file: 'public/build/bundle.js' |
||||||
|
}, |
||||||
|
plugins: [ |
||||||
|
svelte({ |
||||||
|
compilerOptions: { |
||||||
|
// enable run-time checks when not in production
|
||||||
|
dev: !production |
||||||
|
} |
||||||
|
}), |
||||||
|
// we'll extract any component CSS out into
|
||||||
|
// a separate file - better for performance
|
||||||
|
css({ output: 'bundle.css' }), |
||||||
|
|
||||||
|
// If you have external dependencies installed from
|
||||||
|
// npm, you'll most likely need these plugins. In
|
||||||
|
// some cases you'll need additional configuration -
|
||||||
|
// consult the documentation for details:
|
||||||
|
// https://github.com/rollup/plugins/tree/master/packages/commonjs
|
||||||
|
resolve({ |
||||||
|
browser: true, |
||||||
|
dedupe: ['svelte'] |
||||||
|
}), |
||||||
|
commonjs(), |
||||||
|
|
||||||
|
// In dev mode, call `npm run start` once
|
||||||
|
// the bundle has been generated
|
||||||
|
!production && serve(), |
||||||
|
|
||||||
|
// Watch the `public` directory and refresh the
|
||||||
|
// browser on changes when not in production
|
||||||
|
!production && livereload('public'), |
||||||
|
|
||||||
|
// If we're building for production (npm run build
|
||||||
|
// instead of npm run dev), minify
|
||||||
|
production && terser() |
||||||
|
], |
||||||
|
watch: { |
||||||
|
clearScreen: false |
||||||
|
} |
||||||
|
}; |
@ -0,0 +1,117 @@ |
|||||||
|
// @ts-check
|
||||||
|
|
||||||
|
/** This script modifies the project to support TS code in .svelte files like: |
||||||
|
|
||||||
|
<script lang="ts"> |
||||||
|
export let name: string; |
||||||
|
</script> |
||||||
|
|
||||||
|
As well as validating the code for CI. |
||||||
|
*/ |
||||||
|
|
||||||
|
/** To work on this script: |
||||||
|
rm -rf test-template template && git clone sveltejs/template test-template && node scripts/setupTypeScript.js test-template |
||||||
|
*/ |
||||||
|
|
||||||
|
const fs = require("fs") |
||||||
|
const path = require("path") |
||||||
|
const { argv } = require("process") |
||||||
|
|
||||||
|
const projectRoot = argv[2] || path.join(__dirname, "..") |
||||||
|
|
||||||
|
// Add deps to pkg.json
|
||||||
|
const packageJSON = JSON.parse(fs.readFileSync(path.join(projectRoot, "package.json"), "utf8")) |
||||||
|
packageJSON.devDependencies = Object.assign(packageJSON.devDependencies, { |
||||||
|
"svelte-check": "^1.0.0", |
||||||
|
"svelte-preprocess": "^4.0.0", |
||||||
|
"@rollup/plugin-typescript": "^6.0.0", |
||||||
|
"typescript": "^3.9.3", |
||||||
|
"tslib": "^2.0.0", |
||||||
|
"@tsconfig/svelte": "^1.0.0" |
||||||
|
}) |
||||||
|
|
||||||
|
// Add script for checking
|
||||||
|
packageJSON.scripts = Object.assign(packageJSON.scripts, { |
||||||
|
"validate": "svelte-check" |
||||||
|
}) |
||||||
|
|
||||||
|
// Write the package JSON
|
||||||
|
fs.writeFileSync(path.join(projectRoot, "package.json"), JSON.stringify(packageJSON, null, " ")) |
||||||
|
|
||||||
|
// mv src/main.js to main.ts - note, we need to edit rollup.config.js for this too
|
||||||
|
const beforeMainJSPath = path.join(projectRoot, "src", "main.js") |
||||||
|
const afterMainTSPath = path.join(projectRoot, "src", "main.ts") |
||||||
|
fs.renameSync(beforeMainJSPath, afterMainTSPath) |
||||||
|
|
||||||
|
// Switch the app.svelte file to use TS
|
||||||
|
const appSveltePath = path.join(projectRoot, "src", "App.svelte") |
||||||
|
let appFile = fs.readFileSync(appSveltePath, "utf8") |
||||||
|
appFile = appFile.replace("<script>", '<script lang="ts">') |
||||||
|
appFile = appFile.replace("export let name;", 'export let name: string;') |
||||||
|
fs.writeFileSync(appSveltePath, appFile) |
||||||
|
|
||||||
|
// Edit rollup config
|
||||||
|
const rollupConfigPath = path.join(projectRoot, "rollup.config.js") |
||||||
|
let rollupConfig = fs.readFileSync(rollupConfigPath, "utf8") |
||||||
|
|
||||||
|
// Edit imports
|
||||||
|
rollupConfig = rollupConfig.replace(`'rollup-plugin-terser';`, `'rollup-plugin-terser';
|
||||||
|
import sveltePreprocess from 'svelte-preprocess'; |
||||||
|
import typescript from '@rollup/plugin-typescript';`)
|
||||||
|
|
||||||
|
// Replace name of entry point
|
||||||
|
rollupConfig = rollupConfig.replace(`'src/main.js'`, `'src/main.ts'`) |
||||||
|
|
||||||
|
// Add preprocessor
|
||||||
|
rollupConfig = rollupConfig.replace( |
||||||
|
'compilerOptions:', |
||||||
|
'preprocess: sveltePreprocess(),\n\t\t\tcompilerOptions:' |
||||||
|
); |
||||||
|
|
||||||
|
// Add TypeScript
|
||||||
|
rollupConfig = rollupConfig.replace( |
||||||
|
'commonjs(),', |
||||||
|
'commonjs(),\n\t\ttypescript({\n\t\t\tsourceMap: !production,\n\t\t\tinlineSources: !production\n\t\t}),' |
||||||
|
); |
||||||
|
fs.writeFileSync(rollupConfigPath, rollupConfig) |
||||||
|
|
||||||
|
// Add TSConfig
|
||||||
|
const tsconfig = `{
|
||||||
|
"extends": "@tsconfig/svelte/tsconfig.json", |
||||||
|
|
||||||
|
"include": ["src/**/*"], |
||||||
|
"exclude": ["node_modules/*", "__sapper__/*", "public/*"] |
||||||
|
}` |
||||||
|
const tsconfigPath = path.join(projectRoot, "tsconfig.json") |
||||||
|
fs.writeFileSync(tsconfigPath, tsconfig) |
||||||
|
|
||||||
|
// Delete this script, but not during testing
|
||||||
|
if (!argv[2]) { |
||||||
|
// Remove the script
|
||||||
|
fs.unlinkSync(path.join(__filename)) |
||||||
|
|
||||||
|
// Check for Mac's DS_store file, and if it's the only one left remove it
|
||||||
|
const remainingFiles = fs.readdirSync(path.join(__dirname)) |
||||||
|
if (remainingFiles.length === 1 && remainingFiles[0] === '.DS_store') { |
||||||
|
fs.unlinkSync(path.join(__dirname, '.DS_store')) |
||||||
|
} |
||||||
|
|
||||||
|
// Check if the scripts folder is empty
|
||||||
|
if (fs.readdirSync(path.join(__dirname)).length === 0) { |
||||||
|
// Remove the scripts folder
|
||||||
|
fs.rmdirSync(path.join(__dirname)) |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
// Adds the extension recommendation
|
||||||
|
fs.mkdirSync(path.join(projectRoot, ".vscode")) |
||||||
|
fs.writeFileSync(path.join(projectRoot, ".vscode", "extensions.json"), `{
|
||||||
|
"recommendations": ["svelte.svelte-vscode"] |
||||||
|
} |
||||||
|
`)
|
||||||
|
|
||||||
|
console.log("Converted to TypeScript.") |
||||||
|
|
||||||
|
if (fs.existsSync(path.join(projectRoot, "node_modules"))) { |
||||||
|
console.log("\nYou will need to re-run your dependency manager to get started.") |
||||||
|
} |
@ -0,0 +1,141 @@ |
|||||||
|
<script> |
||||||
|
let states = [true] |
||||||
|
for (let i = 1; i < 15; i++) { |
||||||
|
states[i] = false |
||||||
|
} |
||||||
|
|
||||||
|
const change = num => (states[num] = !states[num]) |
||||||
|
</script> |
||||||
|
|
||||||
|
<style> |
||||||
|
.triangle { |
||||||
|
width: 600px; |
||||||
|
height: 450px; |
||||||
|
display: grid; |
||||||
|
grid-template-columns: repeat(9, 1fr); |
||||||
|
grid-template-rows: repeat(5, 1fr); |
||||||
|
grid-column-gap: 0px; |
||||||
|
grid-row-gap: 0px; |
||||||
|
} |
||||||
|
.div0 { |
||||||
|
grid-area: 5 / 1 / 6 / 2; |
||||||
|
} |
||||||
|
.div1 { |
||||||
|
grid-area: 5 / 3 / 6 / 4; |
||||||
|
} |
||||||
|
.div2 { |
||||||
|
grid-area: 5 / 5 / 6 / 6; |
||||||
|
} |
||||||
|
.div3 { |
||||||
|
grid-area: 5 / 7 / 6 / 8; |
||||||
|
} |
||||||
|
.div4 { |
||||||
|
grid-area: 5 / 9 / 6 / 10; |
||||||
|
} |
||||||
|
.div5 { |
||||||
|
grid-area: 4 / 8 / 5 / 9; |
||||||
|
} |
||||||
|
.div6 { |
||||||
|
grid-area: 4 / 6 / 5 / 7; |
||||||
|
} |
||||||
|
.div7 { |
||||||
|
grid-area: 4 / 4 / 5 / 5; |
||||||
|
} |
||||||
|
.div8 { |
||||||
|
grid-area: 4 / 2 / 5 / 3; |
||||||
|
} |
||||||
|
.div9 { |
||||||
|
grid-area: 3 / 3 / 4 / 4; |
||||||
|
} |
||||||
|
.div10 { |
||||||
|
grid-area: 3 / 5 / 4 / 6; |
||||||
|
} |
||||||
|
.div11 { |
||||||
|
grid-area: 3 / 7 / 4 / 8; |
||||||
|
} |
||||||
|
.div12 { |
||||||
|
grid-area: 2 / 6 / 3 / 7; |
||||||
|
} |
||||||
|
.div13 { |
||||||
|
grid-area: 2 / 4 / 3 / 5; |
||||||
|
} |
||||||
|
.div14 { |
||||||
|
grid-area: 1 / 5 / 2 / 6; |
||||||
|
} |
||||||
|
|
||||||
|
.circle { |
||||||
|
width: 30px; |
||||||
|
height: 30px; |
||||||
|
background: red; |
||||||
|
clip-path: circle(); |
||||||
|
} |
||||||
|
|
||||||
|
.empty { |
||||||
|
background-color: gray; |
||||||
|
} |
||||||
|
</style> |
||||||
|
|
||||||
|
<main> |
||||||
|
<div class="triangle"> |
||||||
|
<div |
||||||
|
class="circle div0" |
||||||
|
class:empty={states[0]} |
||||||
|
on:click={() => change(0)} /> |
||||||
|
<div |
||||||
|
class="circle div1" |
||||||
|
class:empty={states[1]} |
||||||
|
on:click={() => change(1)} /> |
||||||
|
<div |
||||||
|
class="circle div2" |
||||||
|
class:empty={states[2]} |
||||||
|
on:click={() => change(2)} /> |
||||||
|
<div |
||||||
|
class="circle div3" |
||||||
|
class:empty={states[3]} |
||||||
|
on:click={() => change(3)} /> |
||||||
|
<div |
||||||
|
class="circle div4" |
||||||
|
class:empty={states[4]} |
||||||
|
on:click={() => change(4)} /> |
||||||
|
<div |
||||||
|
class="circle div5" |
||||||
|
class:empty={states[5]} |
||||||
|
on:click={() => change(5)} /> |
||||||
|
<div |
||||||
|
class="circle div6" |
||||||
|
class:empty={states[6]} |
||||||
|
on:click={() => change(6)} /> |
||||||
|
<div |
||||||
|
class="circle div7" |
||||||
|
class:empty={states[7]} |
||||||
|
on:click={() => change(7)} /> |
||||||
|
<div |
||||||
|
class="circle div8" |
||||||
|
class:empty={states[8]} |
||||||
|
on:click={() => change(8)} /> |
||||||
|
<div |
||||||
|
class="circle div9" |
||||||
|
class:empty={states[9]} |
||||||
|
on:click={() => change(9)} /> |
||||||
|
<div |
||||||
|
class="circle div10" |
||||||
|
class:empty={states[10]} |
||||||
|
on:click={() => change(10)} /> |
||||||
|
<div |
||||||
|
class="circle div11" |
||||||
|
class:empty={states[11]} |
||||||
|
on:click={() => change(11)} /> |
||||||
|
<div |
||||||
|
class="circle div12" |
||||||
|
class:empty={states[12]} |
||||||
|
on:click={() => change(12)} /> |
||||||
|
<div |
||||||
|
class="circle div13" |
||||||
|
class:empty={states[13]} |
||||||
|
on:click={() => change(13)} /> |
||||||
|
<div |
||||||
|
class="circle div14" |
||||||
|
class:empty={states[14]} |
||||||
|
on:click={() => change(14)} /> |
||||||
|
</div> |
||||||
|
</main> |
@ -0,0 +1,8 @@ |
|||||||
|
import App from "./App.svelte" |
||||||
|
|
||||||
|
const app = new App({ |
||||||
|
target: document.body, |
||||||
|
}) |
||||||
|
|
||||||
|
export default app |
||||||
|
|
Loading…
Reference in new issue