├── .gitignore ├── .prettierignore ├── .prettierrc.json ├── LICENSE ├── README.md ├── package.json ├── pnpm-lock.yaml ├── rollup.config.js ├── src ├── Flatpickr.svelte ├── svelte-jsx.d.ts └── types.d.ts └── test ├── .gitignore ├── package.json ├── pnpm-lock.yaml ├── public └── index.html ├── rollup.config.js └── src ├── App.svelte └── main.js /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules/ 2 | dist/ 3 | -------------------------------------------------------------------------------- /.prettierignore: -------------------------------------------------------------------------------- 1 | src/svelte-jsx.d.ts 2 | README.md 3 | -------------------------------------------------------------------------------- /.prettierrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "tabWidth": 4, 3 | "useTabs": true, 4 | "semi": true, 5 | "singleQuote": true, 6 | "arrowParens": "avoid" 7 | } 8 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License Copyright (c) 2022 Jacob Mischka 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy 4 | of this software and associated documentation files (the "Software"), to deal 5 | in the Software without restriction, including without limitation the rights 6 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 7 | copies of the Software, and to permit persons to whom the Software is furnished 8 | to do so, subject to the following conditions: 9 | 10 | The above copyright notice and this permission notice (including the next 11 | paragraph) shall be included in all copies or substantial portions of the 12 | Software. 13 | 14 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 15 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS 16 | FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS 17 | OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 18 | WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF 19 | OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 20 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # svelte-flatpickr 2 | 3 | Svelte component for [flatpickr](https://flatpickr.js.org/) datetime picker. 4 | 5 | ## Usage 6 | 7 | Ideally, if you're using svelte already, configure your bundler to resolve the 8 | package's `svelte` field (or import from `svelte-flatpickr/src/Flatpickr.svelte`) and compile the template from within your own project. See [sveltejs/svelte#604](https://github.com/sveltejs/svelte/issues/604) for more information. 9 | 10 | Don't forget to import flatpickr's stylesheets as well 11 | (`flatpickr/dist/flatpickr.css`, and optionally any theme stylesheets you want). 12 | 13 | ## Versions 14 | 15 | - For Svelte v3 use v3.x.x 16 | - For Svelte v2.x use v1.x.x 17 | - For Svelte v1.x use v0.x.x 18 | 19 | ## Flatpickr documentation 20 | 21 | - [Examples](https://flatpickr.js.org/examples/) 22 | - [Events and hooks](https://flatpickr.js.org/events/) 23 | - [Configuration options](https://flatpickr.js.org/options/) 24 | 25 | ### Example 26 | 27 | See the `test` directory for a full working example. 28 | 29 | ```svelte 30 |
31 |
32 | 33 | 34 | 37 | 38 |
39 | 40 | 66 | ``` 67 | 68 | The selected date(s) can be obtained using hooks or binding to `value`. 69 | 70 | The format of the date expected can be controlled with the prop `dateFormat`, which will take a date format acceptable to Flatpickr. 71 | 72 | The prop `formattedValue` can also be bound to, which contains the selected 73 | date(s)'s formatted string. 74 | 75 | The props `input` and `flatpickr` (or `fp`) can also be bound to, which represent the underlying input element (unless using a custom external element as described below) and the [flatpickr instance](https://flatpickr.js.org/instance-methods-properties-elements/), respectively. 76 | Assigning to these will break the Flatpickr component, please don't. 77 | 78 | ### Hooks 79 | 80 | Hooks can be specified normally in the options object, or by listening to the svelte event. 81 | 82 | When binding svelte handler, `event.details` will be `[ selectedDates, dateStr, instance ]` (see [flatpickr events docs](https://chmln.github.io/flatpickr/events/)). 83 | 84 | ### External Elements 85 | 86 | As per the [flatpickr documentation](https://flatpickr.js.org/examples/#flatpickr-external-elements), it is also possible to wrap a custom element rather than have the component create the input for you. This allows for decoration of the control such as adding a clear button or similar. 87 | 88 | You can add the custom element by wrapping it in the Flatpickr component, as it is the default slot. However, it is necessary to pass the selector for the custom element, as the `element` attribute to Flatpickr's options. 89 | 90 | Specifying the selector for a custom element automatically adds the `{wrap: true}` option to flatpickr. 91 | 92 | ```html 93 | 98 |
99 | 100 | 101 | 102 | 103 | 104 |
105 |
106 | 107 | 116 | ``` 117 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "svelte-flatpickr", 3 | "version": "3.3.5", 4 | "description": "Flatpickr component for Svelte", 5 | "main": "dist/index.cjs.js", 6 | "module": "dist/index.js", 7 | "svelte": "src/Flatpickr.svelte", 8 | "types": "src/types.d.ts", 9 | "homepage": "https://github.com/jacobmischka/svelte-flatpickr", 10 | "repository": "https://github.com/jacobmischka/svelte-flatpickr.git", 11 | "author": "Jacob Mischka ", 12 | "license": "MIT", 13 | "scripts": { 14 | "build": "rollup -c --bundleConfigAsCjs", 15 | "prepublishOnly": "npm run build", 16 | "format": "prettier --write --plugin-search-dir=. ./src/* ./test/src/*" 17 | }, 18 | "devDependencies": { 19 | "prettier": "^3.0.0", 20 | "prettier-plugin-svelte": "^3.0.3", 21 | "rollup": "^3.28.1", 22 | "rollup-plugin-svelte": "^7.1.6", 23 | "svelte": "^4.0.0" 24 | }, 25 | "dependencies": { 26 | "flatpickr": "^4.5.2" 27 | }, 28 | "peerDependencies": { 29 | "svelte": ">= 3.31.0 < 5.0" 30 | }, 31 | "files": ["dist", "src"], 32 | "exports": { 33 | ".": { 34 | "svelte": "./src/Flatpickr.svelte", 35 | "types": "./src/types.d.ts" 36 | } 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /pnpm-lock.yaml: -------------------------------------------------------------------------------- 1 | lockfileVersion: '9.0' 2 | 3 | settings: 4 | autoInstallPeers: true 5 | excludeLinksFromLockfile: false 6 | 7 | importers: 8 | 9 | .: 10 | dependencies: 11 | flatpickr: 12 | specifier: ^4.5.2 13 | version: 4.6.9 14 | devDependencies: 15 | prettier: 16 | specifier: ^3.0.0 17 | version: 3.0.3 18 | prettier-plugin-svelte: 19 | specifier: ^3.0.3 20 | version: 3.0.3(prettier@3.0.3)(svelte@4.2.0) 21 | rollup: 22 | specifier: ^3.28.1 23 | version: 3.28.1 24 | rollup-plugin-svelte: 25 | specifier: ^7.1.6 26 | version: 7.1.6(rollup@3.28.1)(svelte@4.2.0) 27 | svelte: 28 | specifier: ^4.0.0 29 | version: 4.2.0 30 | 31 | packages: 32 | 33 | '@ampproject/remapping@2.2.1': 34 | resolution: {integrity: sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==} 35 | engines: {node: '>=6.0.0'} 36 | 37 | '@jridgewell/gen-mapping@0.3.3': 38 | resolution: {integrity: sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==} 39 | engines: {node: '>=6.0.0'} 40 | 41 | '@jridgewell/resolve-uri@3.1.1': 42 | resolution: {integrity: sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==} 43 | engines: {node: '>=6.0.0'} 44 | 45 | '@jridgewell/set-array@1.1.2': 46 | resolution: {integrity: sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==} 47 | engines: {node: '>=6.0.0'} 48 | 49 | '@jridgewell/sourcemap-codec@1.4.15': 50 | resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} 51 | 52 | '@jridgewell/trace-mapping@0.3.19': 53 | resolution: {integrity: sha512-kf37QtfW+Hwx/buWGMPcR60iF9ziHa6r/CZJIHbmcm4+0qrXiVdxegAH0F6yddEVQ7zdkjcGCgCzUu+BcbhQxw==} 54 | 55 | '@rollup/pluginutils@4.2.1': 56 | resolution: {integrity: sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ==} 57 | engines: {node: '>= 8.0.0'} 58 | 59 | '@types/estree@1.0.1': 60 | resolution: {integrity: sha512-LG4opVs2ANWZ1TJoKc937iMmNstM/d0ae1vNbnBvBhqCSezgVUOzcLCqbI5elV8Vy6WKwKjaqR+zO9VKirBBCA==} 61 | 62 | acorn@8.10.0: 63 | resolution: {integrity: sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==} 64 | engines: {node: '>=0.4.0'} 65 | hasBin: true 66 | 67 | aria-query@5.3.0: 68 | resolution: {integrity: sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==} 69 | 70 | axobject-query@3.2.1: 71 | resolution: {integrity: sha512-jsyHu61e6N4Vbz/v18DHwWYKK0bSWLqn47eeDSKPB7m8tqMHF9YJ+mhIk2lVteyZrY8tnSj/jHOv4YiTCuCJgg==} 72 | 73 | code-red@1.0.4: 74 | resolution: {integrity: sha512-7qJWqItLA8/VPVlKJlFXU+NBlo/qyfs39aJcuMT/2ere32ZqvF5OSxgdM5xOfJJ7O429gg2HM47y8v9P+9wrNw==} 75 | 76 | css-tree@2.3.1: 77 | resolution: {integrity: sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==} 78 | engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0} 79 | 80 | dequal@2.0.3: 81 | resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} 82 | engines: {node: '>=6'} 83 | 84 | estree-walker@2.0.2: 85 | resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} 86 | 87 | estree-walker@3.0.3: 88 | resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==} 89 | 90 | flatpickr@4.6.9: 91 | resolution: {integrity: sha512-F0azNNi8foVWKSF+8X+ZJzz8r9sE1G4hl06RyceIaLvyltKvDl6vqk9Lm/6AUUCi5HWaIjiUbk7UpeE/fOXOpw==} 92 | 93 | fsevents@2.3.3: 94 | resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} 95 | engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} 96 | os: [darwin] 97 | 98 | is-reference@3.0.1: 99 | resolution: {integrity: sha512-baJJdQLiYaJdvFbJqXrcGv3WU3QCzBlUcI5QhbesIm6/xPsvmO+2CDoi/GMOFBQEQm+PXkwOPrp9KK5ozZsp2w==} 100 | 101 | locate-character@3.0.0: 102 | resolution: {integrity: sha512-SW13ws7BjaeJ6p7Q6CO2nchbYEc3X3J6WrmTTDto7yMPqVSZTUyY5Tjbid+Ab8gLnATtygYtiDIJGQRRn2ZOiA==} 103 | 104 | magic-string@0.30.3: 105 | resolution: {integrity: sha512-B7xGbll2fG/VjP+SWg4sX3JynwIU0mjoTc6MPpKNuIvftk6u6vqhDnk1R80b8C2GBR6ywqy+1DcKBrevBg+bmw==} 106 | engines: {node: '>=12'} 107 | 108 | mdn-data@2.0.30: 109 | resolution: {integrity: sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==} 110 | 111 | periscopic@3.1.0: 112 | resolution: {integrity: sha512-vKiQ8RRtkl9P+r/+oefh25C3fhybptkHKCZSPlcXiJux2tJF55GnEj3BVn4A5gKfq9NWWXXrxkHBwVPUfH0opw==} 113 | 114 | picomatch@2.3.1: 115 | resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} 116 | engines: {node: '>=8.6'} 117 | 118 | prettier-plugin-svelte@3.0.3: 119 | resolution: {integrity: sha512-dLhieh4obJEK1hnZ6koxF+tMUrZbV5YGvRpf2+OADyanjya5j0z1Llo8iGwiHmFWZVG/hLEw/AJD5chXd9r3XA==} 120 | peerDependencies: 121 | prettier: ^3.0.0 122 | svelte: ^3.2.0 || ^4.0.0-next.0 123 | 124 | prettier@3.0.3: 125 | resolution: {integrity: sha512-L/4pUDMxcNa8R/EthV08Zt42WBO4h1rarVtK0K+QJG0X187OLo7l699jWw0GKuwzkPQ//jMFA/8Xm6Fh3J/DAg==} 126 | engines: {node: '>=14'} 127 | hasBin: true 128 | 129 | resolve.exports@2.0.2: 130 | resolution: {integrity: sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg==} 131 | engines: {node: '>=10'} 132 | 133 | rollup-plugin-svelte@7.1.6: 134 | resolution: {integrity: sha512-nVFRBpGWI2qUY1OcSiEEA/kjCY2+vAjO9BI8SzA7NRrh2GTunLd6w2EYmnMt/atgdg8GvcNjLsmZmbQs/u4SQA==} 135 | engines: {node: '>=10'} 136 | peerDependencies: 137 | rollup: '>=2.0.0' 138 | svelte: '>=3.5.0' 139 | 140 | rollup@3.28.1: 141 | resolution: {integrity: sha512-R9OMQmIHJm9znrU3m3cpE8uhN0fGdXiawME7aZIpQqvpS/85+Vt1Hq1/yVIcYfOmaQiHjvXkQAoJukvLpau6Yw==} 142 | engines: {node: '>=14.18.0', npm: '>=8.0.0'} 143 | hasBin: true 144 | 145 | source-map-js@1.0.2: 146 | resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==} 147 | engines: {node: '>=0.10.0'} 148 | 149 | svelte@4.2.0: 150 | resolution: {integrity: sha512-kVsdPjDbLrv74SmLSUzAsBGquMs4MPgWGkGLpH+PjOYnFOziAvENVzgJmyOCV2gntxE32aNm8/sqNKD6LbIpeQ==} 151 | engines: {node: '>=16'} 152 | 153 | snapshots: 154 | 155 | '@ampproject/remapping@2.2.1': 156 | dependencies: 157 | '@jridgewell/gen-mapping': 0.3.3 158 | '@jridgewell/trace-mapping': 0.3.19 159 | 160 | '@jridgewell/gen-mapping@0.3.3': 161 | dependencies: 162 | '@jridgewell/set-array': 1.1.2 163 | '@jridgewell/sourcemap-codec': 1.4.15 164 | '@jridgewell/trace-mapping': 0.3.19 165 | 166 | '@jridgewell/resolve-uri@3.1.1': {} 167 | 168 | '@jridgewell/set-array@1.1.2': {} 169 | 170 | '@jridgewell/sourcemap-codec@1.4.15': {} 171 | 172 | '@jridgewell/trace-mapping@0.3.19': 173 | dependencies: 174 | '@jridgewell/resolve-uri': 3.1.1 175 | '@jridgewell/sourcemap-codec': 1.4.15 176 | 177 | '@rollup/pluginutils@4.2.1': 178 | dependencies: 179 | estree-walker: 2.0.2 180 | picomatch: 2.3.1 181 | 182 | '@types/estree@1.0.1': {} 183 | 184 | acorn@8.10.0: {} 185 | 186 | aria-query@5.3.0: 187 | dependencies: 188 | dequal: 2.0.3 189 | 190 | axobject-query@3.2.1: 191 | dependencies: 192 | dequal: 2.0.3 193 | 194 | code-red@1.0.4: 195 | dependencies: 196 | '@jridgewell/sourcemap-codec': 1.4.15 197 | '@types/estree': 1.0.1 198 | acorn: 8.10.0 199 | estree-walker: 3.0.3 200 | periscopic: 3.1.0 201 | 202 | css-tree@2.3.1: 203 | dependencies: 204 | mdn-data: 2.0.30 205 | source-map-js: 1.0.2 206 | 207 | dequal@2.0.3: {} 208 | 209 | estree-walker@2.0.2: {} 210 | 211 | estree-walker@3.0.3: 212 | dependencies: 213 | '@types/estree': 1.0.1 214 | 215 | flatpickr@4.6.9: {} 216 | 217 | fsevents@2.3.3: 218 | optional: true 219 | 220 | is-reference@3.0.1: 221 | dependencies: 222 | '@types/estree': 1.0.1 223 | 224 | locate-character@3.0.0: {} 225 | 226 | magic-string@0.30.3: 227 | dependencies: 228 | '@jridgewell/sourcemap-codec': 1.4.15 229 | 230 | mdn-data@2.0.30: {} 231 | 232 | periscopic@3.1.0: 233 | dependencies: 234 | '@types/estree': 1.0.1 235 | estree-walker: 3.0.3 236 | is-reference: 3.0.1 237 | 238 | picomatch@2.3.1: {} 239 | 240 | prettier-plugin-svelte@3.0.3(prettier@3.0.3)(svelte@4.2.0): 241 | dependencies: 242 | prettier: 3.0.3 243 | svelte: 4.2.0 244 | 245 | prettier@3.0.3: {} 246 | 247 | resolve.exports@2.0.2: {} 248 | 249 | rollup-plugin-svelte@7.1.6(rollup@3.28.1)(svelte@4.2.0): 250 | dependencies: 251 | '@rollup/pluginutils': 4.2.1 252 | resolve.exports: 2.0.2 253 | rollup: 3.28.1 254 | svelte: 4.2.0 255 | 256 | rollup@3.28.1: 257 | optionalDependencies: 258 | fsevents: 2.3.3 259 | 260 | source-map-js@1.0.2: {} 261 | 262 | svelte@4.2.0: 263 | dependencies: 264 | '@ampproject/remapping': 2.2.1 265 | '@jridgewell/sourcemap-codec': 1.4.15 266 | '@jridgewell/trace-mapping': 0.3.19 267 | acorn: 8.10.0 268 | aria-query: 5.3.0 269 | axobject-query: 3.2.1 270 | code-red: 1.0.4 271 | css-tree: 2.3.1 272 | estree-walker: 3.0.3 273 | is-reference: 3.0.1 274 | locate-character: 3.0.0 275 | magic-string: 0.30.3 276 | periscopic: 3.1.0 277 | -------------------------------------------------------------------------------- /rollup.config.js: -------------------------------------------------------------------------------- 1 | import svelte from 'rollup-plugin-svelte'; 2 | import pkg from './package.json'; 3 | 4 | export default { 5 | input: './src/Flatpickr.svelte', 6 | output: [ 7 | { 8 | file: pkg.main, 9 | format: 'umd', 10 | name: 'SvelteFlatpickr' 11 | }, 12 | { 13 | file: pkg.module, 14 | format: 'es' 15 | } 16 | ], 17 | plugins: [ 18 | svelte() 19 | ], 20 | external: [ 21 | 'flatpickr', 22 | 'svelte', 23 | 'svelte/internal' 24 | ] 25 | }; 26 | -------------------------------------------------------------------------------- /src/Flatpickr.svelte: -------------------------------------------------------------------------------- 1 | 127 | 128 | 129 | 130 | 131 | -------------------------------------------------------------------------------- /src/svelte-jsx.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | /* eslint @typescript-eslint/no-unused-vars: off */ 3 | /** 4 | * Adapted from svelte2tsx 5 | * @see https://github.com/sveltejs/language-tools/blob/52904b65b16a160050bd6765033067f52438ddb4/packages/svelte2tsx/svelte-jsx.d.ts 6 | * 7 | * which was adapted from 8 | * 9 | * Adapted from jsx-dom 10 | * @see https://github.com/proteriax/jsx-dom/blob/be06937ba16908d87bf8aa4372a3583133e02b8a/index.d.ts 11 | * 12 | * which was adapted from 13 | * 14 | * Adapted from React’s TypeScript definition from DefinitelyTyped. 15 | * @see https://github.com/DefinitelyTyped/DefinitelyTyped/blob/master/types/react/index.d.ts 16 | */ 17 | declare namespace svelteFlatpickr.JSX { 18 | 19 | /* svelte specific */ 20 | interface ElementClass { 21 | $$prop_def: any; 22 | } 23 | 24 | interface ElementAttributesProperty { 25 | $$prop_def: any; // specify the property name to use 26 | } 27 | 28 | /* html jsx */ 29 | 30 | 31 | export type Child = Node | Node[] | string | number; 32 | export type Children = Child | Child[]; 33 | 34 | type NativeElement = HTMLElement; 35 | 36 | interface IntrinsicAttributes { 37 | slot?: string; 38 | } 39 | 40 | // TypeScript SVGElement has no `dataset` (Chrome 55+, Firefox 51+). 41 | type Element = NativeElement & { 42 | dataset: DOMStringMap; 43 | }; 44 | 45 | // 46 | // Event Handler Types 47 | // ---------------------------------------------------------------------- 48 | type EventHandler = 49 | (event: E & { currentTarget: EventTarget & T}) => any; 50 | 51 | type ClipboardEventHandler = EventHandler; 52 | type CompositionEventHandler = EventHandler; 53 | type DragEventHandler = EventHandler; 54 | type FocusEventHandler = EventHandler; 55 | type FormEventHandler = EventHandler; 56 | type ChangeEventHandler = EventHandler; 57 | type KeyboardEventHandler = EventHandler; 58 | type MouseEventHandler = EventHandler; 59 | type TouchEventHandler = EventHandler; 60 | type PointerEventHandler = EventHandler; 61 | type UIEventHandler = EventHandler; 62 | type WheelEventHandler = EventHandler; 63 | type AnimationEventHandler = EventHandler; 64 | type TransitionEventHandler = EventHandler; 65 | type MessageEventHandler = EventHandler; 66 | 67 | type ClassNameBase = boolean | string | number | void | null; 68 | type ClassName = string | Array | { 69 | [key: string]: boolean; 70 | } 71 | 72 | // See CSS 3 CSS-wide keywords https://www.w3.org/TR/css3-values/#common-keywords 73 | // See CSS 3 Explicit Defaulting https://www.w3.org/TR/css-cascade-3/#defaulting-keywords 74 | // "all CSS properties can accept these values" 75 | type CSSWideKeyword = 'initial' | 'inherit' | 'unset'; 76 | 77 | // See CSS 3 type https://drafts.csswg.org/css-values-3/#percentages 78 | type CSSPercentage = string; 79 | 80 | // See CSS 3 type https://drafts.csswg.org/css-values-3/#lengths 81 | type CSSLength = number | string; 82 | 83 | // This interface is not complete. Only properties accepting 84 | // unit-less numbers are listed here (see CSSProperty.js in React) 85 | 86 | interface DOMAttributes { 87 | // jsx-dom specific 88 | /* children?: Children; 89 | innerText?: string; 90 | namespaceURI?: string; 91 | ref?: ((e: T) => void) | Ref; */ 92 | 93 | // Clipboard Events 94 | oncopy?: ClipboardEventHandler; 95 | oncut?: ClipboardEventHandler; 96 | onpaste?: ClipboardEventHandler; 97 | 98 | // Composition Events 99 | oncompositionend?: CompositionEventHandler; 100 | oncompositionstart?: CompositionEventHandler; 101 | oncompositionupdate?: CompositionEventHandler; 102 | 103 | // Focus Events 104 | onfocus?: FocusEventHandler; 105 | onfocusin?: FocusEventHandler; 106 | onfocusout?: FocusEventHandler; 107 | onblur?: FocusEventHandler; 108 | 109 | // Form Events 110 | onchange?: FormEventHandler; 111 | oninput?: FormEventHandler; 112 | onreset?: FormEventHandler; 113 | onsubmit?: FormEventHandler; 114 | oninvalid?: EventHandler; 115 | onbeforeinput?: EventHandler; 116 | 117 | // Image Events 118 | onload?: EventHandler; 119 | onerror?: EventHandler; // also a Media Event 120 | 121 | // Detail Events 122 | ontoggle?: EventHandler; 123 | 124 | // Keyboard Events 125 | onkeydown?: KeyboardEventHandler; 126 | onkeypress?: KeyboardEventHandler; 127 | onkeyup?: KeyboardEventHandler; 128 | 129 | // Media Events 130 | onabort?: EventHandler; 131 | oncanplay?: EventHandler; 132 | oncanplaythrough?: EventHandler; 133 | oncuechange?: EventHandler; 134 | ondurationchange?: EventHandler; 135 | onemptied?: EventHandler; 136 | onencrypted?: EventHandler; 137 | onended?: EventHandler; 138 | onloadeddata?: EventHandler; 139 | onloadedmetadata?: EventHandler; 140 | onloadstart?: EventHandler; 141 | onpause?: EventHandler; 142 | onplay?: EventHandler; 143 | onplaying?: EventHandler; 144 | onprogress?: EventHandler; 145 | onratechange?: EventHandler; 146 | onseeked?: EventHandler; 147 | onseeking?: EventHandler; 148 | onstalled?: EventHandler; 149 | onsuspend?: EventHandler; 150 | ontimeupdate?: EventHandler; 151 | onvolumechange?: EventHandler; 152 | onwaiting?: EventHandler; 153 | 154 | // MouseEvents 155 | onauxclick?: MouseEventHandler; 156 | onclick?: MouseEventHandler; 157 | oncontextmenu?: MouseEventHandler; 158 | ondblclick?: MouseEventHandler; 159 | ondrag?: DragEventHandler; 160 | ondragend?: DragEventHandler; 161 | ondragenter?: DragEventHandler; 162 | ondragexit?: DragEventHandler; 163 | ondragleave?: DragEventHandler; 164 | ondragover?: DragEventHandler; 165 | ondragstart?: DragEventHandler; 166 | ondrop?: DragEventHandler; 167 | onmousedown?: MouseEventHandler; 168 | onmouseenter?: MouseEventHandler; 169 | onmouseleave?: MouseEventHandler; 170 | onmousemove?: MouseEventHandler; 171 | onmouseout?: MouseEventHandler; 172 | onmouseover?: MouseEventHandler; 173 | onmouseup?: MouseEventHandler; 174 | 175 | // Selection Events 176 | onselect?: EventHandler; 177 | onselectionchange?: EventHandler; 178 | onselectstart?: EventHandler; 179 | 180 | // Touch Events 181 | ontouchcancel?: TouchEventHandler; 182 | ontouchend?: TouchEventHandler; 183 | ontouchmove?: TouchEventHandler; 184 | ontouchstart?: TouchEventHandler; 185 | 186 | // Pointer Events 187 | ongotpointercapture?: PointerEventHandler; 188 | onpointercancel?: PointerEventHandler; 189 | onpointerdown?: PointerEventHandler; 190 | onpointerenter?: PointerEventHandler; 191 | onpointerleave?: PointerEventHandler; 192 | onpointermove?: PointerEventHandler; 193 | onpointerout?: PointerEventHandler; 194 | onpointerover?: PointerEventHandler; 195 | onpointerup?: PointerEventHandler; 196 | onlostpointercapture?: PointerEventHandler; 197 | 198 | // UI Events 199 | onscroll?: UIEventHandler; 200 | onresize?: UIEventHandler; 201 | 202 | // Wheel Events 203 | onwheel?: WheelEventHandler; 204 | 205 | // Animation Events 206 | onanimationstart?: AnimationEventHandler; 207 | onanimationend?: AnimationEventHandler; 208 | onanimationiteration?: AnimationEventHandler; 209 | 210 | // Transition Events 211 | ontransitionstart?: TransitionEventHandler; 212 | ontransitionrun?: TransitionEventHandler; 213 | ontransitionend?: TransitionEventHandler; 214 | ontransitioncancel?: TransitionEventHandler; 215 | 216 | // Svelte Transition Events 217 | onoutrostart?: EventHandler, T>; 218 | onoutroend?: EventHandler, T>; 219 | onintrostart?: EventHandler, T>; 220 | onintroend?: EventHandler, T>; 221 | 222 | // Message Events 223 | onmessage?: MessageEventHandler; 224 | onmessageerror?: MessageEventHandler; 225 | 226 | // Global Events 227 | oncancel?: EventHandler; 228 | onclose?: EventHandler; 229 | onfullscreenchange?: EventHandler; 230 | onfullscreenerror?: EventHandler; 231 | } 232 | 233 | // All the WAI-ARIA 1.1 attributes from https://www.w3.org/TR/wai-aria-1.1/ 234 | interface AriaAttributes { 235 | /** Identifies the currently active element when DOM focus is on a composite widget, textbox, group, or application. */ 236 | 'aria-activedescendant'?: string; 237 | /** Indicates whether assistive technologies will present all, or only parts of, the changed region based on the change notifications defined by the aria-relevant attribute. */ 238 | 'aria-atomic'?: boolean | 'false' | 'true'; 239 | /** 240 | * Indicates whether inputting text could trigger display of one or more predictions of the user's intended value for an input and specifies how predictions would be 241 | * presented if they are made. 242 | */ 243 | 'aria-autocomplete'?: 'none' | 'inline' | 'list' | 'both'; 244 | /** Indicates an element is being modified and that assistive technologies MAY want to wait until the modifications are complete before exposing them to the user. */ 245 | 'aria-busy'?: boolean | 'false' | 'true'; 246 | /** 247 | * Indicates the current "checked" state of checkboxes, radio buttons, and other widgets. 248 | * @see aria-pressed @see aria-selected. 249 | */ 250 | 'aria-checked'?: boolean | 'false' | 'mixed' | 'true'; 251 | /** 252 | * Defines the total number of columns in a table, grid, or treegrid. 253 | * @see aria-colindex. 254 | */ 255 | 'aria-colcount'?: number; 256 | /** 257 | * Defines an element's column index or position with respect to the total number of columns within a table, grid, or treegrid. 258 | * @see aria-colcount @see aria-colspan. 259 | */ 260 | 'aria-colindex'?: number; 261 | /** 262 | * Defines the number of columns spanned by a cell or gridcell within a table, grid, or treegrid. 263 | * @see aria-colindex @see aria-rowspan. 264 | */ 265 | 'aria-colspan'?: number; 266 | /** 267 | * Identifies the element (or elements) whose contents or presence are controlled by the current element. 268 | * @see aria-owns. 269 | */ 270 | 'aria-controls'?: string; 271 | /** Indicates the element that represents the current item within a container or set of related elements. */ 272 | 'aria-current'?: boolean | 'false' | 'true' | 'page' | 'step' | 'location' | 'date' | 'time'; 273 | /** 274 | * Identifies the element (or elements) that describes the object. 275 | * @see aria-labelledby 276 | */ 277 | 'aria-describedby'?: string; 278 | /** 279 | * Identifies the element that provides a detailed, extended description for the object. 280 | * @see aria-describedby. 281 | */ 282 | 'aria-details'?: string; 283 | /** 284 | * Indicates that the element is perceivable but disabled, so it is not editable or otherwise operable. 285 | * @see aria-hidden @see aria-readonly. 286 | */ 287 | 'aria-disabled'?: boolean | 'false' | 'true'; 288 | /** 289 | * Indicates what functions can be performed when a dragged object is released on the drop target. 290 | * @deprecated in ARIA 1.1 291 | */ 292 | 'aria-dropeffect'?: 'none' | 'copy' | 'execute' | 'link' | 'move' | 'popup'; 293 | /** 294 | * Identifies the element that provides an error message for the object. 295 | * @see aria-invalid @see aria-describedby. 296 | */ 297 | 'aria-errormessage'?: string; 298 | /** Indicates whether the element, or another grouping element it controls, is currently expanded or collapsed. */ 299 | 'aria-expanded'?: boolean | 'false' | 'true'; 300 | /** 301 | * Identifies the next element (or elements) in an alternate reading order of content which, at the user's discretion, 302 | * allows assistive technology to override the general default of reading in document source order. 303 | */ 304 | 'aria-flowto'?: string; 305 | /** 306 | * Indicates an element's "grabbed" state in a drag-and-drop operation. 307 | * @deprecated in ARIA 1.1 308 | */ 309 | 'aria-grabbed'?: boolean | 'false' | 'true'; 310 | /** Indicates the availability and type of interactive popup element, such as menu or dialog, that can be triggered by an element. */ 311 | 'aria-haspopup'?: boolean | 'false' | 'true' | 'menu' | 'listbox' | 'tree' | 'grid' | 'dialog'; 312 | /** 313 | * Indicates whether the element is exposed to an accessibility API. 314 | * @see aria-disabled. 315 | */ 316 | 'aria-hidden'?: boolean | 'false' | 'true'; 317 | /** 318 | * Indicates the entered value does not conform to the format expected by the application. 319 | * @see aria-errormessage. 320 | */ 321 | 'aria-invalid'?: boolean | 'false' | 'true' | 'grammar' | 'spelling'; 322 | /** Indicates keyboard shortcuts that an author has implemented to activate or give focus to an element. */ 323 | 'aria-keyshortcuts'?: string; 324 | /** 325 | * Defines a string value that labels the current element. 326 | * @see aria-labelledby. 327 | */ 328 | 'aria-label'?: string; 329 | /** 330 | * Identifies the element (or elements) that labels the current element. 331 | * @see aria-describedby. 332 | */ 333 | 'aria-labelledby'?: string; 334 | /** Defines the hierarchical level of an element within a structure. */ 335 | 'aria-level'?: number; 336 | /** Indicates that an element will be updated, and describes the types of updates the user agents, assistive technologies, and user can expect from the live region. */ 337 | 'aria-live'?: 'off' | 'assertive' | 'polite'; 338 | /** Indicates whether an element is modal when displayed. */ 339 | 'aria-modal'?: boolean | 'false' | 'true'; 340 | /** Indicates whether a text box accepts multiple lines of input or only a single line. */ 341 | 'aria-multiline'?: boolean | 'false' | 'true'; 342 | /** Indicates that the user may select more than one item from the current selectable descendants. */ 343 | 'aria-multiselectable'?: boolean | 'false' | 'true'; 344 | /** Indicates whether the element's orientation is horizontal, vertical, or unknown/ambiguous. */ 345 | 'aria-orientation'?: 'horizontal' | 'vertical'; 346 | /** 347 | * Identifies an element (or elements) in order to define a visual, functional, or contextual parent/child relationship 348 | * between DOM elements where the DOM hierarchy cannot be used to represent the relationship. 349 | * @see aria-controls. 350 | */ 351 | 'aria-owns'?: string; 352 | /** 353 | * Defines a short hint (a word or short phrase) intended to aid the user with data entry when the control has no value. 354 | * A hint could be a sample value or a brief description of the expected format. 355 | */ 356 | 'aria-placeholder'?: string; 357 | /** 358 | * Defines an element's number or position in the current set of listitems or treeitems. Not required if all elements in the set are present in the DOM. 359 | * @see aria-setsize. 360 | */ 361 | 'aria-posinset'?: number; 362 | /** 363 | * Indicates the current "pressed" state of toggle buttons. 364 | * @see aria-checked @see aria-selected. 365 | */ 366 | 'aria-pressed'?: boolean | 'false' | 'mixed' | 'true'; 367 | /** 368 | * Indicates that the element is not editable, but is otherwise operable. 369 | * @see aria-disabled. 370 | */ 371 | 'aria-readonly'?: boolean | 'false' | 'true'; 372 | /** 373 | * Indicates what notifications the user agent will trigger when the accessibility tree within a live region is modified. 374 | * @see aria-atomic. 375 | */ 376 | 'aria-relevant'?: 'additions' | 'additions removals' | 'additions text' | 'all' | 'removals' | 'removals additions' | 'removals text' | 'text' | 'text additions' | 'text removals'; 377 | /** Indicates that user input is required on the element before a form may be submitted. */ 378 | 'aria-required'?: boolean | 'false' | 'true'; 379 | /** Defines a human-readable, author-localized description for the role of an element. */ 380 | 'aria-roledescription'?: string; 381 | /** 382 | * Defines the total number of rows in a table, grid, or treegrid. 383 | * @see aria-rowindex. 384 | */ 385 | 'aria-rowcount'?: number; 386 | /** 387 | * Defines an element's row index or position with respect to the total number of rows within a table, grid, or treegrid. 388 | * @see aria-rowcount @see aria-rowspan. 389 | */ 390 | 'aria-rowindex'?: number; 391 | /** 392 | * Defines the number of rows spanned by a cell or gridcell within a table, grid, or treegrid. 393 | * @see aria-rowindex @see aria-colspan. 394 | */ 395 | 'aria-rowspan'?: number; 396 | /** 397 | * Indicates the current "selected" state of various widgets. 398 | * @see aria-checked @see aria-pressed. 399 | */ 400 | 'aria-selected'?: boolean | 'false' | 'true'; 401 | /** 402 | * Defines the number of items in the current set of listitems or treeitems. Not required if all elements in the set are present in the DOM. 403 | * @see aria-posinset. 404 | */ 405 | 'aria-setsize'?: number; 406 | /** Indicates if items in a table or grid are sorted in ascending or descending order. */ 407 | 'aria-sort'?: 'none' | 'ascending' | 'descending' | 'other'; 408 | /** Defines the maximum allowed value for a range widget. */ 409 | 'aria-valuemax'?: number; 410 | /** Defines the minimum allowed value for a range widget. */ 411 | 'aria-valuemin'?: number; 412 | /** 413 | * Defines the current value for a range widget. 414 | * @see aria-valuetext. 415 | */ 416 | 'aria-valuenow'?: number; 417 | /** Defines the human readable text alternative of aria-valuenow for a range widget. */ 418 | 'aria-valuetext'?: string; 419 | } 420 | 421 | interface HTMLAttributes extends AriaAttributes, DOMAttributes { 422 | // jsx-dom-specific Attributes 423 | class?: ClassName; 424 | dataset?: object; // eslint-disable-line 425 | 426 | // Standard HTML Attributes 427 | accept?: string; 428 | acceptcharset?: string; 429 | accesskey?: string; 430 | action?: string; 431 | allow?: string; 432 | allowfullscreen?: boolean; 433 | allowtransparency?: boolean; 434 | allowpaymentrequest?: boolean; 435 | alt?: string; 436 | as?: string; 437 | async?: boolean; 438 | autocomplete?: string; 439 | autofocus?: boolean; 440 | autoplay?: boolean; 441 | capture?: 'environment' | 'user' | boolean; 442 | cellpadding?: number | string; 443 | cellspacing?: number | string; 444 | charset?: string; 445 | challenge?: string; 446 | checked?: boolean; 447 | cite?: string; 448 | classid?: string; 449 | classname?: ClassName; 450 | cols?: number; 451 | colspan?: number; 452 | content?: string; 453 | contenteditable?: 'true' | 'false' | boolean; 454 | 455 | // Doesn't work when used as HTML attribute 456 | /** 457 | * Elements with the contenteditable attribute support innerHTML and textContent bindings. 458 | */ 459 | innerHTML?: string; 460 | // Doesn't work when used as HTML attribute 461 | /** 462 | * Elements with the contenteditable attribute support innerHTML and textContent bindings. 463 | */ 464 | 465 | textContent?: string; 466 | 467 | contextmenu?: string; 468 | controls?: boolean; 469 | coords?: string; 470 | crossorigin?: string; 471 | currenttime?: number; 472 | decoding?: 'async' | 'sync' | 'auto'; 473 | data?: string; 474 | datetime?: string; 475 | default?: boolean; 476 | defaultmuted?: boolean; 477 | defaultplaybackrate?: number; 478 | defer?: boolean; 479 | dir?: string; 480 | dirname?: string; 481 | disabled?: boolean; 482 | download?: any; 483 | draggable?: boolean | 'true' | 'false'; 484 | enctype?: string; 485 | for?: string; 486 | form?: string; 487 | formaction?: string; 488 | formenctype?: string; 489 | formmethod?: string; 490 | formnovalidate?: boolean; 491 | formtarget?: string; 492 | frameborder?: number | string; 493 | headers?: string; 494 | height?: number | string; 495 | hidden?: boolean; 496 | high?: number; 497 | href?: string; 498 | hreflang?: string; 499 | htmlfor?: string; 500 | httpequiv?: string; 501 | id?: string; 502 | inputmode?: string; 503 | integrity?: string; 504 | is?: string; 505 | ismap?: boolean; 506 | keyparams?: string; 507 | keytype?: string; 508 | kind?: string; 509 | label?: string; 510 | lang?: string; 511 | list?: string; 512 | loading?: string; 513 | loop?: boolean; 514 | low?: number; 515 | manifest?: string; 516 | marginheight?: number; 517 | marginwidth?: number; 518 | max?: number | string; 519 | maxlength?: number; 520 | media?: string; 521 | mediagroup?: string; 522 | method?: string; 523 | min?: number | string; 524 | minlength?: number; 525 | multiple?: boolean; 526 | muted?: boolean; 527 | name?: string; 528 | nonce?: string; 529 | novalidate?: boolean; 530 | open?: boolean; 531 | optimum?: number; 532 | part?: string; 533 | pattern?: string; 534 | placeholder?: string; 535 | playsinline?: boolean; 536 | poster?: string; 537 | preload?: string; 538 | radiogroup?: string; 539 | readonly?: boolean; 540 | referrerpolicy?: string; 541 | rel?: string; 542 | required?: boolean; 543 | reversed?: boolean; 544 | role?: string; 545 | rows?: number; 546 | rowspan?: number; 547 | sandbox?: string; 548 | scope?: string; 549 | scoped?: boolean; 550 | scrolling?: string; 551 | seamless?: boolean; 552 | selected?: boolean; 553 | shape?: string; 554 | size?: number; 555 | sizes?: string; 556 | slot?: string; 557 | span?: number; 558 | spellcheck?: boolean | 'true' | 'false'; 559 | src?: string; 560 | srcdoc?: string; 561 | srclang?: string; 562 | srcset?: string; 563 | start?: number; 564 | step?: number | string; 565 | style?: string; 566 | summary?: string; 567 | tabindex?: number; 568 | target?: string; 569 | title?: string; 570 | type?: string; 571 | usemap?: string; 572 | // Disabled because of conflict with SvelteFlatpickrProps 573 | // value?: string | string[] | number | null; 574 | /** 575 | * a value between 0 and 1 576 | */ 577 | volume?: number; 578 | width?: number | string; 579 | wmode?: string; 580 | wrap?: string; 581 | 582 | // RDFa Attributes 583 | about?: string; 584 | datatype?: string; 585 | inlist?: any; 586 | prefix?: string; 587 | property?: string; 588 | resource?: string; 589 | typeof?: string; 590 | vocab?: string; 591 | 592 | // Non-standard Attributes 593 | autocapitalize?: string; 594 | autocorrect?: string; 595 | autosave?: string; 596 | color?: string; 597 | itemprop?: string; 598 | itemscope?: boolean; 599 | itemtype?: string; 600 | itemid?: string; 601 | itemref?: string; 602 | results?: number; 603 | security?: string; 604 | unselectable?: boolean; 605 | } 606 | 607 | // this list is "complete" in that it contains every SVG attribute 608 | // that React supports, but the types can be improved. 609 | // Full list here: https://facebook.github.io/react/docs/dom-elements.html 610 | // 611 | // The three broad type categories are (in order of restrictiveness): 612 | // - "number | string" 613 | // - "string" 614 | // - union of string literals 615 | 616 | // eslint-disable-next-line @typescript-eslint/no-empty-interface 617 | interface HTMLProps extends HTMLAttributes {} 618 | 619 | interface SvelteOptionProps extends HTMLProps { 620 | value?: any; 621 | } 622 | 623 | interface SvelteSelectProps extends HTMLProps { 624 | value?: any; 625 | } 626 | 627 | interface SvelteInputProps extends HTMLProps { 628 | group?: any; 629 | files?: FileList | null; 630 | indeterminate?: boolean; 631 | } 632 | } 633 | -------------------------------------------------------------------------------- /src/types.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | 3 | import { SvelteComponentTyped } from 'svelte'; 4 | import flatpickr from 'flatpickr'; 5 | 6 | export type HookProps = [Date[], string, flatpickr.Instance]; 7 | 8 | declare module 'svelte-flatpickr' { 9 | export interface SvelteFlatpickrProps { 10 | children: unknown; 11 | value?: Date | string | Date[] | null; 12 | formattedValue?: string; 13 | element?: HTMLInputElement | string; 14 | dateFormat?: string; 15 | options?: flatpickr.Options.Options; 16 | input?: HTMLInputElement | string; 17 | fp?: flatpickr.Instance; 18 | flatpickr?: flatpickr.Instance; 19 | } 20 | 21 | class Flatpickr extends SvelteComponentTyped< 22 | SvelteFlatpickrProps & svelteFlatpickr.JSX.SvelteInputProps, 23 | { 24 | change: CustomEvent; 25 | open: CustomEvent; 26 | close: CustomEvent; 27 | monthChange: CustomEvent; 28 | yearChange: CustomEvent; 29 | ready: CustomEvent; 30 | valueUpdate: CustomEvent; 31 | dayCreate: CustomEvent; 32 | }, 33 | {} 34 | > {} 35 | 36 | export default Flatpickr; 37 | } 38 | -------------------------------------------------------------------------------- /test/.gitignore: -------------------------------------------------------------------------------- 1 | /node_modules/ 2 | /public/build/ 3 | 4 | .DS_Store 5 | -------------------------------------------------------------------------------- /test/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "svelte-app", 3 | "version": "1.0.0", 4 | "scripts": { 5 | "build": "rollup -c --bundleConfigAsCjs", 6 | "dev": "rollup -c -w --bundleConfigAsCjs", 7 | "start": "sirv public --port 5000" 8 | }, 9 | "devDependencies": { 10 | "@rollup/plugin-commonjs": "^25.0.4", 11 | "@rollup/plugin-node-resolve": "^15.2.1", 12 | "@rollup/plugin-terser": "^0.4.3", 13 | "rollup": "^3.28.1", 14 | "rollup-plugin-copy": "^3.4.0", 15 | "rollup-plugin-css-only": "^4.3.0", 16 | "rollup-plugin-livereload": "^2.0.5", 17 | "rollup-plugin-svelte": "^7.1.6", 18 | "svelte": "^4.2.0" 19 | }, 20 | "dependencies": { 21 | "sirv-cli": "^2.0.2" 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /test/pnpm-lock.yaml: -------------------------------------------------------------------------------- 1 | lockfileVersion: 5.4 2 | 3 | specifiers: 4 | '@rollup/plugin-commonjs': ^25.0.4 5 | '@rollup/plugin-node-resolve': ^15.2.1 6 | '@rollup/plugin-terser': ^0.4.3 7 | rollup: ^3.28.1 8 | rollup-plugin-copy: ^3.4.0 9 | rollup-plugin-css-only: ^4.3.0 10 | rollup-plugin-livereload: ^2.0.5 11 | rollup-plugin-svelte: ^7.1.6 12 | sirv-cli: ^2.0.2 13 | svelte: ^4.2.0 14 | svelte-flatpickr: file:../svelte-flatpickr-3.3.3.tgz 15 | 16 | dependencies: 17 | sirv-cli: 2.0.2 18 | svelte-flatpickr: file:../svelte-flatpickr-3.3.3.tgz_svelte@4.2.0 19 | 20 | devDependencies: 21 | '@rollup/plugin-commonjs': 25.0.4_rollup@3.28.1 22 | '@rollup/plugin-node-resolve': 15.2.1_rollup@3.28.1 23 | '@rollup/plugin-terser': 0.4.3_rollup@3.28.1 24 | rollup: 3.28.1 25 | rollup-plugin-copy: 3.4.0 26 | rollup-plugin-css-only: 4.3.0_rollup@3.28.1 27 | rollup-plugin-livereload: 2.0.5 28 | rollup-plugin-svelte: 7.1.6_rollup@3.28.1+svelte@4.2.0 29 | svelte: 4.2.0 30 | 31 | packages: 32 | 33 | /@ampproject/remapping/2.2.1: 34 | resolution: {integrity: sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==} 35 | engines: {node: '>=6.0.0'} 36 | dependencies: 37 | '@jridgewell/gen-mapping': 0.3.3 38 | '@jridgewell/trace-mapping': 0.3.19 39 | 40 | /@jridgewell/gen-mapping/0.3.3: 41 | resolution: {integrity: sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==} 42 | engines: {node: '>=6.0.0'} 43 | dependencies: 44 | '@jridgewell/set-array': 1.1.2 45 | '@jridgewell/sourcemap-codec': 1.4.15 46 | '@jridgewell/trace-mapping': 0.3.19 47 | 48 | /@jridgewell/resolve-uri/3.1.1: 49 | resolution: {integrity: sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==} 50 | engines: {node: '>=6.0.0'} 51 | 52 | /@jridgewell/set-array/1.1.2: 53 | resolution: {integrity: sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==} 54 | engines: {node: '>=6.0.0'} 55 | 56 | /@jridgewell/source-map/0.3.5: 57 | resolution: {integrity: sha512-UTYAUj/wviwdsMfzoSJspJxbkH5o1snzwX0//0ENX1u/55kkZZkcTZP6u9bwKGkv+dkk9at4m1Cpt0uY80kcpQ==} 58 | dependencies: 59 | '@jridgewell/gen-mapping': 0.3.3 60 | '@jridgewell/trace-mapping': 0.3.19 61 | dev: true 62 | 63 | /@jridgewell/sourcemap-codec/1.4.15: 64 | resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} 65 | 66 | /@jridgewell/trace-mapping/0.3.19: 67 | resolution: {integrity: sha512-kf37QtfW+Hwx/buWGMPcR60iF9ziHa6r/CZJIHbmcm4+0qrXiVdxegAH0F6yddEVQ7zdkjcGCgCzUu+BcbhQxw==} 68 | dependencies: 69 | '@jridgewell/resolve-uri': 3.1.1 70 | '@jridgewell/sourcemap-codec': 1.4.15 71 | 72 | /@nodelib/fs.scandir/2.1.5: 73 | resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} 74 | engines: {node: '>= 8'} 75 | dependencies: 76 | '@nodelib/fs.stat': 2.0.5 77 | run-parallel: 1.2.0 78 | dev: true 79 | 80 | /@nodelib/fs.stat/2.0.5: 81 | resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} 82 | engines: {node: '>= 8'} 83 | dev: true 84 | 85 | /@nodelib/fs.walk/1.2.8: 86 | resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} 87 | engines: {node: '>= 8'} 88 | dependencies: 89 | '@nodelib/fs.scandir': 2.1.5 90 | fastq: 1.15.0 91 | dev: true 92 | 93 | /@polka/url/1.0.0-next.21: 94 | resolution: {integrity: sha512-a5Sab1C4/icpTZVzZc5Ghpz88yQtGOyNqYXcZgOssB2uuAr+wF/MvN6bgtW32q7HHrvBki+BsZ0OuNv6EV3K9g==} 95 | dev: false 96 | 97 | /@rollup/plugin-commonjs/25.0.4_rollup@3.28.1: 98 | resolution: {integrity: sha512-L92Vz9WUZXDnlQQl3EwbypJR4+DM2EbsO+/KOcEkP4Mc6Ct453EeDB2uH9lgRwj4w5yflgNpq9pHOiY8aoUXBQ==} 99 | engines: {node: '>=14.0.0'} 100 | peerDependencies: 101 | rollup: ^2.68.0||^3.0.0 102 | peerDependenciesMeta: 103 | rollup: 104 | optional: true 105 | dependencies: 106 | '@rollup/pluginutils': 5.0.4_rollup@3.28.1 107 | commondir: 1.0.1 108 | estree-walker: 2.0.2 109 | glob: 8.1.0 110 | is-reference: 1.2.1 111 | magic-string: 0.27.0 112 | rollup: 3.28.1 113 | dev: true 114 | 115 | /@rollup/plugin-node-resolve/15.2.1_rollup@3.28.1: 116 | resolution: {integrity: sha512-nsbUg588+GDSu8/NS8T4UAshO6xeaOfINNuXeVHcKV02LJtoRaM1SiOacClw4kws1SFiNhdLGxlbMY9ga/zs/w==} 117 | engines: {node: '>=14.0.0'} 118 | peerDependencies: 119 | rollup: ^2.78.0||^3.0.0 120 | peerDependenciesMeta: 121 | rollup: 122 | optional: true 123 | dependencies: 124 | '@rollup/pluginutils': 5.0.4_rollup@3.28.1 125 | '@types/resolve': 1.20.2 126 | deepmerge: 4.3.1 127 | is-builtin-module: 3.2.1 128 | is-module: 1.0.0 129 | resolve: 1.22.4 130 | rollup: 3.28.1 131 | dev: true 132 | 133 | /@rollup/plugin-terser/0.4.3_rollup@3.28.1: 134 | resolution: {integrity: sha512-EF0oejTMtkyhrkwCdg0HJ0IpkcaVg1MMSf2olHb2Jp+1mnLM04OhjpJWGma4HobiDTF0WCyViWuvadyE9ch2XA==} 135 | engines: {node: '>=14.0.0'} 136 | peerDependencies: 137 | rollup: ^2.x || ^3.x 138 | peerDependenciesMeta: 139 | rollup: 140 | optional: true 141 | dependencies: 142 | rollup: 3.28.1 143 | serialize-javascript: 6.0.1 144 | smob: 1.4.0 145 | terser: 5.19.3 146 | dev: true 147 | 148 | /@rollup/pluginutils/4.2.1: 149 | resolution: {integrity: sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ==} 150 | engines: {node: '>= 8.0.0'} 151 | dependencies: 152 | estree-walker: 2.0.2 153 | picomatch: 2.3.1 154 | dev: true 155 | 156 | /@rollup/pluginutils/5.0.4_rollup@3.28.1: 157 | resolution: {integrity: sha512-0KJnIoRI8A+a1dqOYLxH8vBf8bphDmty5QvIm2hqm7oFCFYKCAZWWd2hXgMibaPsNDhI0AtpYfQZJG47pt/k4g==} 158 | engines: {node: '>=14.0.0'} 159 | peerDependencies: 160 | rollup: ^1.20.0||^2.0.0||^3.0.0 161 | peerDependenciesMeta: 162 | rollup: 163 | optional: true 164 | dependencies: 165 | '@types/estree': 1.0.1 166 | estree-walker: 2.0.2 167 | picomatch: 2.3.1 168 | rollup: 3.28.1 169 | dev: true 170 | 171 | /@types/estree/1.0.1: 172 | resolution: {integrity: sha512-LG4opVs2ANWZ1TJoKc937iMmNstM/d0ae1vNbnBvBhqCSezgVUOzcLCqbI5elV8Vy6WKwKjaqR+zO9VKirBBCA==} 173 | 174 | /@types/fs-extra/8.1.2: 175 | resolution: {integrity: sha512-SvSrYXfWSc7R4eqnOzbQF4TZmfpNSM9FrSWLU3EUnWBuyZqNBOrv1B1JA3byUDPUl9z4Ab3jeZG2eDdySlgNMg==} 176 | dependencies: 177 | '@types/node': 20.5.7 178 | dev: true 179 | 180 | /@types/glob/7.2.0: 181 | resolution: {integrity: sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==} 182 | dependencies: 183 | '@types/minimatch': 5.1.2 184 | '@types/node': 20.5.7 185 | dev: true 186 | 187 | /@types/minimatch/5.1.2: 188 | resolution: {integrity: sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA==} 189 | dev: true 190 | 191 | /@types/node/20.5.7: 192 | resolution: {integrity: sha512-dP7f3LdZIysZnmvP3ANJYTSwg+wLLl8p7RqniVlV7j+oXSXAbt9h0WIBFmJy5inWZoX9wZN6eXx+YXd9Rh3RBA==} 193 | dev: true 194 | 195 | /@types/resolve/1.20.2: 196 | resolution: {integrity: sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==} 197 | dev: true 198 | 199 | /acorn/8.10.0: 200 | resolution: {integrity: sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==} 201 | engines: {node: '>=0.4.0'} 202 | hasBin: true 203 | 204 | /anymatch/3.1.3: 205 | resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} 206 | engines: {node: '>= 8'} 207 | dependencies: 208 | normalize-path: 3.0.0 209 | picomatch: 2.3.1 210 | dev: true 211 | 212 | /aria-query/5.3.0: 213 | resolution: {integrity: sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==} 214 | dependencies: 215 | dequal: 2.0.3 216 | 217 | /array-union/2.1.0: 218 | resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} 219 | engines: {node: '>=8'} 220 | dev: true 221 | 222 | /axobject-query/3.2.1: 223 | resolution: {integrity: sha512-jsyHu61e6N4Vbz/v18DHwWYKK0bSWLqn47eeDSKPB7m8tqMHF9YJ+mhIk2lVteyZrY8tnSj/jHOv4YiTCuCJgg==} 224 | dependencies: 225 | dequal: 2.0.3 226 | 227 | /balanced-match/1.0.2: 228 | resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} 229 | dev: true 230 | 231 | /binary-extensions/2.2.0: 232 | resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==} 233 | engines: {node: '>=8'} 234 | dev: true 235 | 236 | /brace-expansion/1.1.11: 237 | resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} 238 | dependencies: 239 | balanced-match: 1.0.2 240 | concat-map: 0.0.1 241 | dev: true 242 | 243 | /brace-expansion/2.0.1: 244 | resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} 245 | dependencies: 246 | balanced-match: 1.0.2 247 | dev: true 248 | 249 | /braces/3.0.2: 250 | resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} 251 | engines: {node: '>=8'} 252 | dependencies: 253 | fill-range: 7.0.1 254 | dev: true 255 | 256 | /buffer-from/1.1.2: 257 | resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} 258 | dev: true 259 | 260 | /builtin-modules/3.3.0: 261 | resolution: {integrity: sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==} 262 | engines: {node: '>=6'} 263 | dev: true 264 | 265 | /chokidar/3.5.3: 266 | resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==} 267 | engines: {node: '>= 8.10.0'} 268 | dependencies: 269 | anymatch: 3.1.3 270 | braces: 3.0.2 271 | glob-parent: 5.1.2 272 | is-binary-path: 2.1.0 273 | is-glob: 4.0.3 274 | normalize-path: 3.0.0 275 | readdirp: 3.6.0 276 | optionalDependencies: 277 | fsevents: 2.3.3 278 | dev: true 279 | 280 | /code-red/1.0.4: 281 | resolution: {integrity: sha512-7qJWqItLA8/VPVlKJlFXU+NBlo/qyfs39aJcuMT/2ere32ZqvF5OSxgdM5xOfJJ7O429gg2HM47y8v9P+9wrNw==} 282 | dependencies: 283 | '@jridgewell/sourcemap-codec': 1.4.15 284 | '@types/estree': 1.0.1 285 | acorn: 8.10.0 286 | estree-walker: 3.0.3 287 | periscopic: 3.1.0 288 | 289 | /colorette/1.4.0: 290 | resolution: {integrity: sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g==} 291 | dev: true 292 | 293 | /commander/2.20.3: 294 | resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} 295 | dev: true 296 | 297 | /commondir/1.0.1: 298 | resolution: {integrity: sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==} 299 | dev: true 300 | 301 | /concat-map/0.0.1: 302 | resolution: {integrity: sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=} 303 | dev: true 304 | 305 | /console-clear/1.1.1: 306 | resolution: {integrity: sha512-pMD+MVR538ipqkG5JXeOEbKWS5um1H4LUUccUQG68qpeqBYbzYy79Gh55jkd2TtPdRfUaLWdv6LPP//5Zt0aPQ==} 307 | engines: {node: '>=4'} 308 | dev: false 309 | 310 | /css-tree/2.3.1: 311 | resolution: {integrity: sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==} 312 | engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0} 313 | dependencies: 314 | mdn-data: 2.0.30 315 | source-map-js: 1.0.2 316 | 317 | /deepmerge/4.3.1: 318 | resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==} 319 | engines: {node: '>=0.10.0'} 320 | dev: true 321 | 322 | /dequal/2.0.3: 323 | resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} 324 | engines: {node: '>=6'} 325 | 326 | /dir-glob/3.0.1: 327 | resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} 328 | engines: {node: '>=8'} 329 | dependencies: 330 | path-type: 4.0.0 331 | dev: true 332 | 333 | /estree-walker/2.0.2: 334 | resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} 335 | dev: true 336 | 337 | /estree-walker/3.0.3: 338 | resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==} 339 | dependencies: 340 | '@types/estree': 1.0.1 341 | 342 | /fast-glob/3.3.1: 343 | resolution: {integrity: sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==} 344 | engines: {node: '>=8.6.0'} 345 | dependencies: 346 | '@nodelib/fs.stat': 2.0.5 347 | '@nodelib/fs.walk': 1.2.8 348 | glob-parent: 5.1.2 349 | merge2: 1.4.1 350 | micromatch: 4.0.5 351 | dev: true 352 | 353 | /fastq/1.15.0: 354 | resolution: {integrity: sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==} 355 | dependencies: 356 | reusify: 1.0.4 357 | dev: true 358 | 359 | /fill-range/7.0.1: 360 | resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} 361 | engines: {node: '>=8'} 362 | dependencies: 363 | to-regex-range: 5.0.1 364 | dev: true 365 | 366 | /flatpickr/4.6.13: 367 | resolution: {integrity: sha512-97PMG/aywoYpB4IvbvUJi0RQi8vearvU0oov1WW3k0WZPBMrTQVqekSX5CjSG/M4Q3i6A/0FKXC7RyAoAUUSPw==} 368 | dev: false 369 | 370 | /fs-extra/8.1.0: 371 | resolution: {integrity: sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==} 372 | engines: {node: '>=6 <7 || >=8'} 373 | dependencies: 374 | graceful-fs: 4.2.11 375 | jsonfile: 4.0.0 376 | universalify: 0.1.2 377 | dev: true 378 | 379 | /fs.realpath/1.0.0: 380 | resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} 381 | dev: true 382 | 383 | /fsevents/2.3.3: 384 | resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} 385 | engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} 386 | os: [darwin] 387 | requiresBuild: true 388 | dev: true 389 | optional: true 390 | 391 | /function-bind/1.1.1: 392 | resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==} 393 | dev: true 394 | 395 | /get-port/3.2.0: 396 | resolution: {integrity: sha512-x5UJKlgeUiNT8nyo/AcnwLnZuZNcSjSw0kogRB+Whd1fjjFq4B1hySFxSFWWSn4mIBzg3sRNUDFYc4g5gjPoLg==} 397 | engines: {node: '>=4'} 398 | dev: false 399 | 400 | /glob-parent/5.1.2: 401 | resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} 402 | engines: {node: '>= 6'} 403 | dependencies: 404 | is-glob: 4.0.3 405 | dev: true 406 | 407 | /glob/7.2.3: 408 | resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} 409 | dependencies: 410 | fs.realpath: 1.0.0 411 | inflight: 1.0.6 412 | inherits: 2.0.4 413 | minimatch: 3.1.2 414 | once: 1.4.0 415 | path-is-absolute: 1.0.1 416 | dev: true 417 | 418 | /glob/8.1.0: 419 | resolution: {integrity: sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==} 420 | engines: {node: '>=12'} 421 | dependencies: 422 | fs.realpath: 1.0.0 423 | inflight: 1.0.6 424 | inherits: 2.0.4 425 | minimatch: 5.1.6 426 | once: 1.4.0 427 | dev: true 428 | 429 | /globby/10.0.1: 430 | resolution: {integrity: sha512-sSs4inE1FB2YQiymcmTv6NWENryABjUNPeWhOvmn4SjtKybglsyPZxFB3U1/+L1bYi0rNZDqCLlHyLYDl1Pq5A==} 431 | engines: {node: '>=8'} 432 | dependencies: 433 | '@types/glob': 7.2.0 434 | array-union: 2.1.0 435 | dir-glob: 3.0.1 436 | fast-glob: 3.3.1 437 | glob: 7.2.3 438 | ignore: 5.2.4 439 | merge2: 1.4.1 440 | slash: 3.0.0 441 | dev: true 442 | 443 | /graceful-fs/4.2.11: 444 | resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} 445 | dev: true 446 | 447 | /has/1.0.3: 448 | resolution: {integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==} 449 | engines: {node: '>= 0.4.0'} 450 | dependencies: 451 | function-bind: 1.1.1 452 | dev: true 453 | 454 | /ignore/5.2.4: 455 | resolution: {integrity: sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==} 456 | engines: {node: '>= 4'} 457 | dev: true 458 | 459 | /inflight/1.0.6: 460 | resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} 461 | dependencies: 462 | once: 1.4.0 463 | wrappy: 1.0.2 464 | dev: true 465 | 466 | /inherits/2.0.4: 467 | resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} 468 | dev: true 469 | 470 | /is-binary-path/2.1.0: 471 | resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} 472 | engines: {node: '>=8'} 473 | dependencies: 474 | binary-extensions: 2.2.0 475 | dev: true 476 | 477 | /is-builtin-module/3.2.1: 478 | resolution: {integrity: sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A==} 479 | engines: {node: '>=6'} 480 | dependencies: 481 | builtin-modules: 3.3.0 482 | dev: true 483 | 484 | /is-core-module/2.13.0: 485 | resolution: {integrity: sha512-Z7dk6Qo8pOCp3l4tsX2C5ZVas4V+UxwQodwZhLopL91TX8UyyHEXafPcyoeeWuLrwzHcr3igO78wNLwHJHsMCQ==} 486 | dependencies: 487 | has: 1.0.3 488 | dev: true 489 | 490 | /is-extglob/2.1.1: 491 | resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} 492 | engines: {node: '>=0.10.0'} 493 | dev: true 494 | 495 | /is-glob/4.0.3: 496 | resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} 497 | engines: {node: '>=0.10.0'} 498 | dependencies: 499 | is-extglob: 2.1.1 500 | dev: true 501 | 502 | /is-module/1.0.0: 503 | resolution: {integrity: sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==} 504 | dev: true 505 | 506 | /is-number/7.0.0: 507 | resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} 508 | engines: {node: '>=0.12.0'} 509 | dev: true 510 | 511 | /is-plain-object/3.0.1: 512 | resolution: {integrity: sha512-Xnpx182SBMrr/aBik8y+GuR4U1L9FqMSojwDQwPMmxyC6bvEqly9UBCxhauBF5vNh2gwWJNX6oDV7O+OM4z34g==} 513 | engines: {node: '>=0.10.0'} 514 | dev: true 515 | 516 | /is-reference/1.2.1: 517 | resolution: {integrity: sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==} 518 | dependencies: 519 | '@types/estree': 1.0.1 520 | dev: true 521 | 522 | /is-reference/3.0.1: 523 | resolution: {integrity: sha512-baJJdQLiYaJdvFbJqXrcGv3WU3QCzBlUcI5QhbesIm6/xPsvmO+2CDoi/GMOFBQEQm+PXkwOPrp9KK5ozZsp2w==} 524 | dependencies: 525 | '@types/estree': 1.0.1 526 | 527 | /jsonfile/4.0.0: 528 | resolution: {integrity: sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==} 529 | optionalDependencies: 530 | graceful-fs: 4.2.11 531 | dev: true 532 | 533 | /kleur/4.1.5: 534 | resolution: {integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==} 535 | engines: {node: '>=6'} 536 | dev: false 537 | 538 | /livereload-js/3.4.1: 539 | resolution: {integrity: sha512-5MP0uUeVCec89ZbNOT/i97Mc+q3SxXmiUGhRFOTmhrGPn//uWVQdCvcLJDy64MSBR5MidFdOR7B9viumoavy6g==} 540 | dev: true 541 | 542 | /livereload/0.9.3: 543 | resolution: {integrity: sha512-q7Z71n3i4X0R9xthAryBdNGVGAO2R5X+/xXpmKeuPMrteg+W2U8VusTKV3YiJbXZwKsOlFlHe+go6uSNjfxrZw==} 544 | engines: {node: '>=8.0.0'} 545 | hasBin: true 546 | dependencies: 547 | chokidar: 3.5.3 548 | livereload-js: 3.4.1 549 | opts: 2.0.2 550 | ws: 7.5.9 551 | transitivePeerDependencies: 552 | - bufferutil 553 | - utf-8-validate 554 | dev: true 555 | 556 | /local-access/1.1.0: 557 | resolution: {integrity: sha512-XfegD5pyTAfb+GY6chk283Ox5z8WexG56OvM06RWLpAc/UHozO8X6xAxEkIitZOtsSMM1Yr3DkHgW5W+onLhCw==} 558 | engines: {node: '>=6'} 559 | dev: false 560 | 561 | /locate-character/3.0.0: 562 | resolution: {integrity: sha512-SW13ws7BjaeJ6p7Q6CO2nchbYEc3X3J6WrmTTDto7yMPqVSZTUyY5Tjbid+Ab8gLnATtygYtiDIJGQRRn2ZOiA==} 563 | 564 | /magic-string/0.27.0: 565 | resolution: {integrity: sha512-8UnnX2PeRAPZuN12svgR9j7M1uWMovg/CEnIwIG0LFkXSJJe4PdfUGiTGl8V9bsBHFUtfVINcSyYxd7q+kx9fA==} 566 | engines: {node: '>=12'} 567 | dependencies: 568 | '@jridgewell/sourcemap-codec': 1.4.15 569 | dev: true 570 | 571 | /magic-string/0.30.3: 572 | resolution: {integrity: sha512-B7xGbll2fG/VjP+SWg4sX3JynwIU0mjoTc6MPpKNuIvftk6u6vqhDnk1R80b8C2GBR6ywqy+1DcKBrevBg+bmw==} 573 | engines: {node: '>=12'} 574 | dependencies: 575 | '@jridgewell/sourcemap-codec': 1.4.15 576 | 577 | /mdn-data/2.0.30: 578 | resolution: {integrity: sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==} 579 | 580 | /merge2/1.4.1: 581 | resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} 582 | engines: {node: '>= 8'} 583 | dev: true 584 | 585 | /micromatch/4.0.5: 586 | resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} 587 | engines: {node: '>=8.6'} 588 | dependencies: 589 | braces: 3.0.2 590 | picomatch: 2.3.1 591 | dev: true 592 | 593 | /minimatch/3.1.2: 594 | resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} 595 | dependencies: 596 | brace-expansion: 1.1.11 597 | dev: true 598 | 599 | /minimatch/5.1.6: 600 | resolution: {integrity: sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==} 601 | engines: {node: '>=10'} 602 | dependencies: 603 | brace-expansion: 2.0.1 604 | dev: true 605 | 606 | /mri/1.2.0: 607 | resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==} 608 | engines: {node: '>=4'} 609 | dev: false 610 | 611 | /mrmime/1.0.1: 612 | resolution: {integrity: sha512-hzzEagAgDyoU1Q6yg5uI+AorQgdvMCur3FcKf7NhMKWsaYg+RnbTyHRa/9IlLF9rf455MOCtcqqrQQ83pPP7Uw==} 613 | engines: {node: '>=10'} 614 | dev: false 615 | 616 | /normalize-path/3.0.0: 617 | resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} 618 | engines: {node: '>=0.10.0'} 619 | dev: true 620 | 621 | /once/1.4.0: 622 | resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} 623 | dependencies: 624 | wrappy: 1.0.2 625 | dev: true 626 | 627 | /opts/2.0.2: 628 | resolution: {integrity: sha512-k41FwbcLnlgnFh69f4qdUfvDQ+5vaSDnVPFI/y5XuhKRq97EnVVneO9F1ESVCdiVu4fCS2L8usX3mU331hB7pg==} 629 | dev: true 630 | 631 | /path-is-absolute/1.0.1: 632 | resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} 633 | engines: {node: '>=0.10.0'} 634 | dev: true 635 | 636 | /path-parse/1.0.7: 637 | resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} 638 | dev: true 639 | 640 | /path-type/4.0.0: 641 | resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} 642 | engines: {node: '>=8'} 643 | dev: true 644 | 645 | /periscopic/3.1.0: 646 | resolution: {integrity: sha512-vKiQ8RRtkl9P+r/+oefh25C3fhybptkHKCZSPlcXiJux2tJF55GnEj3BVn4A5gKfq9NWWXXrxkHBwVPUfH0opw==} 647 | dependencies: 648 | '@types/estree': 1.0.1 649 | estree-walker: 3.0.3 650 | is-reference: 3.0.1 651 | 652 | /picomatch/2.3.1: 653 | resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} 654 | engines: {node: '>=8.6'} 655 | dev: true 656 | 657 | /queue-microtask/1.2.3: 658 | resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} 659 | dev: true 660 | 661 | /randombytes/2.1.0: 662 | resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==} 663 | dependencies: 664 | safe-buffer: 5.2.1 665 | dev: true 666 | 667 | /readdirp/3.6.0: 668 | resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} 669 | engines: {node: '>=8.10.0'} 670 | dependencies: 671 | picomatch: 2.3.1 672 | dev: true 673 | 674 | /resolve.exports/2.0.2: 675 | resolution: {integrity: sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg==} 676 | engines: {node: '>=10'} 677 | dev: true 678 | 679 | /resolve/1.22.4: 680 | resolution: {integrity: sha512-PXNdCiPqDqeUou+w1C2eTQbNfxKSuMxqTCuvlmmMsk1NWHL5fRrhY6Pl0qEYYc6+QqGClco1Qj8XnjPego4wfg==} 681 | hasBin: true 682 | dependencies: 683 | is-core-module: 2.13.0 684 | path-parse: 1.0.7 685 | supports-preserve-symlinks-flag: 1.0.0 686 | dev: true 687 | 688 | /reusify/1.0.4: 689 | resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} 690 | engines: {iojs: '>=1.0.0', node: '>=0.10.0'} 691 | dev: true 692 | 693 | /rollup-plugin-copy/3.4.0: 694 | resolution: {integrity: sha512-rGUmYYsYsceRJRqLVlE9FivJMxJ7X6jDlP79fmFkL8sJs7VVMSVyA2yfyL+PGyO/vJs4A87hwhgVfz61njI+uQ==} 695 | engines: {node: '>=8.3'} 696 | dependencies: 697 | '@types/fs-extra': 8.1.2 698 | colorette: 1.4.0 699 | fs-extra: 8.1.0 700 | globby: 10.0.1 701 | is-plain-object: 3.0.1 702 | dev: true 703 | 704 | /rollup-plugin-css-only/4.3.0_rollup@3.28.1: 705 | resolution: {integrity: sha512-BsiCqJJQzZh2lQiHY5irejRoJ3I1EUFHEi5PjVqsr+EmOh54YrWVwd3YZEXnQJ2+fzlhif0YM/Kf0GuH90GAdQ==} 706 | engines: {node: '>=14'} 707 | peerDependencies: 708 | rollup: <4 709 | dependencies: 710 | '@rollup/pluginutils': 5.0.4_rollup@3.28.1 711 | rollup: 3.28.1 712 | dev: true 713 | 714 | /rollup-plugin-livereload/2.0.5: 715 | resolution: {integrity: sha512-vqQZ/UQowTW7VoiKEM5ouNW90wE5/GZLfdWuR0ELxyKOJUIaj+uismPZZaICU4DnWPVjnpCDDxEqwU7pcKY/PA==} 716 | engines: {node: '>=8.3'} 717 | dependencies: 718 | livereload: 0.9.3 719 | transitivePeerDependencies: 720 | - bufferutil 721 | - utf-8-validate 722 | dev: true 723 | 724 | /rollup-plugin-svelte/7.1.6_rollup@3.28.1+svelte@4.2.0: 725 | resolution: {integrity: sha512-nVFRBpGWI2qUY1OcSiEEA/kjCY2+vAjO9BI8SzA7NRrh2GTunLd6w2EYmnMt/atgdg8GvcNjLsmZmbQs/u4SQA==} 726 | engines: {node: '>=10'} 727 | peerDependencies: 728 | rollup: '>=2.0.0' 729 | svelte: '>=3.5.0' 730 | dependencies: 731 | '@rollup/pluginutils': 4.2.1 732 | resolve.exports: 2.0.2 733 | rollup: 3.28.1 734 | svelte: 4.2.0 735 | dev: true 736 | 737 | /rollup/3.28.1: 738 | resolution: {integrity: sha512-R9OMQmIHJm9znrU3m3cpE8uhN0fGdXiawME7aZIpQqvpS/85+Vt1Hq1/yVIcYfOmaQiHjvXkQAoJukvLpau6Yw==} 739 | engines: {node: '>=14.18.0', npm: '>=8.0.0'} 740 | hasBin: true 741 | optionalDependencies: 742 | fsevents: 2.3.3 743 | dev: true 744 | 745 | /run-parallel/1.2.0: 746 | resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} 747 | dependencies: 748 | queue-microtask: 1.2.3 749 | dev: true 750 | 751 | /sade/1.8.1: 752 | resolution: {integrity: sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==} 753 | engines: {node: '>=6'} 754 | dependencies: 755 | mri: 1.2.0 756 | dev: false 757 | 758 | /safe-buffer/5.2.1: 759 | resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} 760 | dev: true 761 | 762 | /semiver/1.1.0: 763 | resolution: {integrity: sha512-QNI2ChmuioGC1/xjyYwyZYADILWyW6AmS1UH6gDj/SFUUUS4MBAWs/7mxnkRPc/F4iHezDP+O8t0dO8WHiEOdg==} 764 | engines: {node: '>=6'} 765 | dev: false 766 | 767 | /serialize-javascript/6.0.1: 768 | resolution: {integrity: sha512-owoXEFjWRllis8/M1Q+Cw5k8ZH40e3zhp/ovX+Xr/vi1qj6QesbyXXViFbpNvWvPNAD62SutwEXavefrLJWj7w==} 769 | dependencies: 770 | randombytes: 2.1.0 771 | dev: true 772 | 773 | /sirv-cli/2.0.2: 774 | resolution: {integrity: sha512-OtSJDwxsF1NWHc7ps3Sa0s+dPtP15iQNJzfKVz+MxkEo3z72mCD+yu30ct79rPr0CaV1HXSOBp+MIY5uIhHZ1A==} 775 | engines: {node: '>= 10'} 776 | hasBin: true 777 | dependencies: 778 | console-clear: 1.1.1 779 | get-port: 3.2.0 780 | kleur: 4.1.5 781 | local-access: 1.1.0 782 | sade: 1.8.1 783 | semiver: 1.1.0 784 | sirv: 2.0.3 785 | tinydate: 1.3.0 786 | dev: false 787 | 788 | /sirv/2.0.3: 789 | resolution: {integrity: sha512-O9jm9BsID1P+0HOi81VpXPoDxYP374pkOLzACAoyUQ/3OUVndNpsz6wMnY2z+yOxzbllCKZrM+9QrWsv4THnyA==} 790 | engines: {node: '>= 10'} 791 | dependencies: 792 | '@polka/url': 1.0.0-next.21 793 | mrmime: 1.0.1 794 | totalist: 3.0.1 795 | dev: false 796 | 797 | /slash/3.0.0: 798 | resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} 799 | engines: {node: '>=8'} 800 | dev: true 801 | 802 | /smob/1.4.0: 803 | resolution: {integrity: sha512-MqR3fVulhjWuRNSMydnTlweu38UhQ0HXM4buStD/S3mc/BzX3CuM9OmhyQpmtYCvoYdl5ris6TI0ZqH355Ymqg==} 804 | dev: true 805 | 806 | /source-map-js/1.0.2: 807 | resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==} 808 | engines: {node: '>=0.10.0'} 809 | 810 | /source-map-support/0.5.21: 811 | resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==} 812 | dependencies: 813 | buffer-from: 1.1.2 814 | source-map: 0.6.1 815 | dev: true 816 | 817 | /source-map/0.6.1: 818 | resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} 819 | engines: {node: '>=0.10.0'} 820 | dev: true 821 | 822 | /supports-preserve-symlinks-flag/1.0.0: 823 | resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} 824 | engines: {node: '>= 0.4'} 825 | dev: true 826 | 827 | /svelte/4.2.0: 828 | resolution: {integrity: sha512-kVsdPjDbLrv74SmLSUzAsBGquMs4MPgWGkGLpH+PjOYnFOziAvENVzgJmyOCV2gntxE32aNm8/sqNKD6LbIpeQ==} 829 | engines: {node: '>=16'} 830 | dependencies: 831 | '@ampproject/remapping': 2.2.1 832 | '@jridgewell/sourcemap-codec': 1.4.15 833 | '@jridgewell/trace-mapping': 0.3.19 834 | acorn: 8.10.0 835 | aria-query: 5.3.0 836 | axobject-query: 3.2.1 837 | code-red: 1.0.4 838 | css-tree: 2.3.1 839 | estree-walker: 3.0.3 840 | is-reference: 3.0.1 841 | locate-character: 3.0.0 842 | magic-string: 0.30.3 843 | periscopic: 3.1.0 844 | 845 | /terser/5.19.3: 846 | resolution: {integrity: sha512-pQzJ9UJzM0IgmT4FAtYI6+VqFf0lj/to58AV0Xfgg0Up37RyPG7Al+1cepC6/BVuAxR9oNb41/DL4DEoHJvTdg==} 847 | engines: {node: '>=10'} 848 | hasBin: true 849 | dependencies: 850 | '@jridgewell/source-map': 0.3.5 851 | acorn: 8.10.0 852 | commander: 2.20.3 853 | source-map-support: 0.5.21 854 | dev: true 855 | 856 | /tinydate/1.3.0: 857 | resolution: {integrity: sha512-7cR8rLy2QhYHpsBDBVYnnWXm8uRTr38RoZakFSW7Bs7PzfMPNZthuMLkwqZv7MTu8lhQ91cOFYS5a7iFj2oR3w==} 858 | engines: {node: '>=4'} 859 | dev: false 860 | 861 | /to-regex-range/5.0.1: 862 | resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} 863 | engines: {node: '>=8.0'} 864 | dependencies: 865 | is-number: 7.0.0 866 | dev: true 867 | 868 | /totalist/3.0.1: 869 | resolution: {integrity: sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==} 870 | engines: {node: '>=6'} 871 | dev: false 872 | 873 | /universalify/0.1.2: 874 | resolution: {integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==} 875 | engines: {node: '>= 4.0.0'} 876 | dev: true 877 | 878 | /wrappy/1.0.2: 879 | resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} 880 | dev: true 881 | 882 | /ws/7.5.9: 883 | resolution: {integrity: sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==} 884 | engines: {node: '>=8.3.0'} 885 | peerDependencies: 886 | bufferutil: ^4.0.1 887 | utf-8-validate: ^5.0.2 888 | peerDependenciesMeta: 889 | bufferutil: 890 | optional: true 891 | utf-8-validate: 892 | optional: true 893 | dev: true 894 | 895 | file:../svelte-flatpickr-3.3.3.tgz_svelte@4.2.0: 896 | resolution: {integrity: sha512-LuLaC21yxctWKPul1xbFHMPqlzozU2slftpYzLFN6Zkw7kN8PhvkxI7dXEy3vUSzEYKMpXI8rtw8Fc5ZYay3MQ==, tarball: file:../svelte-flatpickr-3.3.3.tgz} 897 | id: file:../svelte-flatpickr-3.3.3.tgz 898 | name: svelte-flatpickr 899 | version: 3.3.3 900 | peerDependencies: 901 | svelte: '>= 3.31.0 < 5.0' 902 | dependencies: 903 | flatpickr: 4.6.13 904 | svelte: 4.2.0 905 | dev: false 906 | -------------------------------------------------------------------------------- /test/public/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Svelte app 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /test/rollup.config.js: -------------------------------------------------------------------------------- 1 | import svelte from 'rollup-plugin-svelte'; 2 | import resolve from '@rollup/plugin-node-resolve'; 3 | import commonjs from '@rollup/plugin-commonjs'; 4 | import livereload from 'rollup-plugin-livereload'; 5 | import terser from '@rollup/plugin-terser'; 6 | import copy from 'rollup-plugin-copy'; 7 | import css from 'rollup-plugin-css-only'; 8 | 9 | const production = !process.env.ROLLUP_WATCH; 10 | 11 | function serve() { 12 | let server; 13 | 14 | function toExit() { 15 | if (server) server.kill(0); 16 | } 17 | 18 | return { 19 | writeBundle() { 20 | if (server) return; 21 | server = require('child_process').spawn( 22 | 'npm', 23 | ['run', 'start', '--', '--dev'], 24 | { 25 | stdio: ['ignore', 'inherit', 'inherit'], 26 | shell: true, 27 | } 28 | ); 29 | 30 | process.on('SIGTERM', toExit); 31 | process.on('exit', toExit); 32 | }, 33 | }; 34 | } 35 | 36 | export default { 37 | input: 'src/main.js', 38 | output: { 39 | sourcemap: true, 40 | format: 'iife', 41 | name: 'app', 42 | file: 'public/build/bundle.js', 43 | }, 44 | plugins: [ 45 | svelte(), 46 | 47 | // If you have external dependencies installed from 48 | // npm, you'll most likely need these plugins. In 49 | // some cases you'll need additional configuration - 50 | // consult the documentation for details: 51 | // https://github.com/rollup/plugins/tree/master/packages/commonjs 52 | resolve({ 53 | browser: true, 54 | dedupe: ['svelte'], 55 | }), 56 | commonjs(), 57 | 58 | copy({ 59 | targets: [ 60 | { 61 | src: '../node_modules/flatpickr/dist/flatpickr.css', 62 | dest: 'public/build', 63 | }, 64 | ], 65 | }), 66 | 67 | css({ 68 | output: 'bundle.css', 69 | }), 70 | 71 | // In dev mode, call `npm run start` once 72 | // the bundle has been generated 73 | !production && serve(), 74 | 75 | // Watch the `public` directory and refresh the 76 | // browser on changes when not in production 77 | !production && livereload('public'), 78 | 79 | // If we're building for production (npm run build 80 | // instead of npm run dev), minify 81 | production && terser(), 82 | ], 83 | watch: { 84 | clearScreen: false, 85 | }, 86 | }; 87 | -------------------------------------------------------------------------------- /test/src/App.svelte: -------------------------------------------------------------------------------- 1 | 51 | 52 |
53 |
54 | { 62 | console.log('closed'); 63 | }} 64 | dateFormat="Y-m-d" 65 | /> 66 | 67 |
68 | Mode 69 | 70 | 74 | 78 | 82 |
83 | 84 | 87 | 90 | 93 | 96 | 99 | 100 | 103 | 104 |
105 | 106 | 117 | -------------------------------------------------------------------------------- /test/src/main.js: -------------------------------------------------------------------------------- 1 | import App from './App.svelte'; 2 | 3 | const app = new App({ 4 | target: document.body, 5 | }); 6 | 7 | export default app; 8 | --------------------------------------------------------------------------------