├── .github
└── FUNDING.yml
├── .gitignore
├── README.md
├── build
└── rollup.config.js
├── package-lock.json
├── package.json
└── src
├── Motion.vue
├── animator.js
└── index.js
/.github/FUNDING.yml:
--------------------------------------------------------------------------------
1 | github: [lepikhinb]
2 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | .DS_Store
2 | node_modules
3 | /dist
4 |
5 |
6 | # local env files
7 | .env.local
8 | .env.*.local
9 |
10 | # Log files
11 | npm-debug.log*
12 | yarn-debug.log*
13 | yarn-error.log*
14 | pnpm-debug.log*
15 |
16 | # Editor directories and files
17 | .idea
18 | .vscode
19 | *.suo
20 | *.ntvs*
21 | *.njsproj
22 | *.sln
23 | *.sw?
24 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 |
Tinymotion
2 |
3 | Tinymotion is a Vue.js animation library, that seamlessly works with Tailwind CSS.
4 |
5 |
6 |
7 | Hover |
8 | Click |
9 | Trigger |
10 | Auto |
11 |
12 |
13 |
14 |
15 | |
16 |
17 |
18 | |
19 |
20 |
21 | |
22 |
23 |
24 | |
25 |
26 |
27 | Switch |
28 | Grid |
29 | Shuffle |
30 | Loader |
31 |
32 |
33 |
34 |
35 | |
36 |
37 |
38 | |
39 |
40 |
41 | |
42 |
43 |
44 | |
45 |
46 |
47 |
48 | ## Installation
49 | ```sh
50 | npm i -S tinymotion
51 | ```
52 |
53 | ## How to use
54 | ```vue
55 |
56 |
65 |
66 |
67 |
90 | ```
91 |
92 | ### Triggers
93 | #### Hover
94 | Triggers animation on hover. If `rollback` option is enabled, the animation will start rolling back on mouse leave.
95 |
96 | ```vue
97 |
98 |
106 |
107 | ```
108 |
109 | #### Click
110 | Triggers animation on click. If `rollback` option is enabled, the animation will start rolling back on mouse up.
111 |
112 | ```vue
113 |
114 |
122 |
123 | ```
124 |
125 | #### Custom trigger
126 | Tinymotion supports external triggers. Once the trigger value is changed, the animation will fire. The next time the value is changed, the animation will stop.
127 |
128 | ```vue
129 |
130 |
139 |
140 |
141 |
142 |
143 |
156 | ```
157 |
158 | ## Examples
159 | * [Hover](https://tinymotion.me/#hover)
160 | * [Click](https://tinymotion.me/#click)
161 | * [External trigger](https://tinymotion.me/#trigger)
162 | * [Auto](https://tinymotion.me/#auto)
163 | * [Switch](https://tinymotion.me/usage#switch)
164 | * [Loader](https://tinymotion.me/usage#loader)
165 |
166 | ## Roadmap
167 | This project is in the early development stage. If you want to help to improve this, you are welcome to create a PR.
168 |
169 | ## Author
170 | [Boris Lepikhin](https://twitter.com/lepikhinb)
--------------------------------------------------------------------------------
/build/rollup.config.js:
--------------------------------------------------------------------------------
1 | import commonjs from '@rollup/plugin-commonjs';
2 | import vue from 'rollup-plugin-vue';
3 | import buble from '@rollup/plugin-buble';
4 |
5 | export default {
6 | input: 'src/index.js',
7 | output: {
8 | name: 'Motion',
9 | exports: 'named'
10 | },
11 | plugins: [
12 | commonjs(),
13 | vue({
14 | css: true,
15 | compileTemplate: true,
16 | }),
17 | buble({
18 | objectAssign: 'Object.assign'
19 | })
20 | ],
21 | };
--------------------------------------------------------------------------------
/package-lock.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "tinymotion",
3 | "version": "0.0.1",
4 | "lockfileVersion": 1,
5 | "requires": true,
6 | "dependencies": {
7 | "@rollup/plugin-buble": {
8 | "version": "0.21.3",
9 | "resolved": "https://registry.npmjs.org/@rollup/plugin-buble/-/plugin-buble-0.21.3.tgz",
10 | "integrity": "sha512-Iv8cCuFPnMdqV4pcyU+OrfjOfagPArRQ1PyQjx5KgHk3dARedI+8PNTLSMpJts0lQJr8yF2pAU4GxpxCBJ9HYw==",
11 | "dev": true,
12 | "requires": {
13 | "@rollup/pluginutils": "^3.0.8",
14 | "@types/buble": "^0.19.2",
15 | "buble": "^0.20.0"
16 | },
17 | "dependencies": {
18 | "buble": {
19 | "version": "0.20.0",
20 | "resolved": "https://registry.npmjs.org/buble/-/buble-0.20.0.tgz",
21 | "integrity": "sha512-/1gnaMQE8xvd5qsNBl+iTuyjJ9XxeaVxAMF86dQ4EyxFJOZtsgOS8Ra+7WHgZTam5IFDtt4BguN0sH0tVTKrOw==",
22 | "dev": true,
23 | "requires": {
24 | "acorn": "^6.4.1",
25 | "acorn-dynamic-import": "^4.0.0",
26 | "acorn-jsx": "^5.2.0",
27 | "chalk": "^2.4.2",
28 | "magic-string": "^0.25.7",
29 | "minimist": "^1.2.5",
30 | "regexpu-core": "4.5.4"
31 | }
32 | },
33 | "regexpu-core": {
34 | "version": "4.5.4",
35 | "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.5.4.tgz",
36 | "integrity": "sha512-BtizvGtFQKGPUcTy56o3nk1bGRp4SZOTYrDtGNlqCQufptV5IkkLN6Emw+yunAJjzf+C9FQFtvq7IoA3+oMYHQ==",
37 | "dev": true,
38 | "requires": {
39 | "regenerate": "^1.4.0",
40 | "regenerate-unicode-properties": "^8.0.2",
41 | "regjsgen": "^0.5.0",
42 | "regjsparser": "^0.6.0",
43 | "unicode-match-property-ecmascript": "^1.0.4",
44 | "unicode-match-property-value-ecmascript": "^1.1.0"
45 | }
46 | }
47 | }
48 | },
49 | "@rollup/plugin-commonjs": {
50 | "version": "11.1.0",
51 | "resolved": "https://registry.npmjs.org/@rollup/plugin-commonjs/-/plugin-commonjs-11.1.0.tgz",
52 | "integrity": "sha512-Ycr12N3ZPN96Fw2STurD21jMqzKwL9QuFhms3SD7KKRK7oaXUsBU9Zt0jL/rOPHiPYisI21/rXGO3jr9BnLHUA==",
53 | "dev": true,
54 | "requires": {
55 | "@rollup/pluginutils": "^3.0.8",
56 | "commondir": "^1.0.1",
57 | "estree-walker": "^1.0.1",
58 | "glob": "^7.1.2",
59 | "is-reference": "^1.1.2",
60 | "magic-string": "^0.25.2",
61 | "resolve": "^1.11.0"
62 | }
63 | },
64 | "@rollup/pluginutils": {
65 | "version": "3.1.0",
66 | "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-3.1.0.tgz",
67 | "integrity": "sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==",
68 | "dev": true,
69 | "requires": {
70 | "@types/estree": "0.0.39",
71 | "estree-walker": "^1.0.1",
72 | "picomatch": "^2.2.2"
73 | },
74 | "dependencies": {
75 | "@types/estree": {
76 | "version": "0.0.39",
77 | "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz",
78 | "integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==",
79 | "dev": true
80 | },
81 | "estree-walker": {
82 | "version": "1.0.1",
83 | "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz",
84 | "integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==",
85 | "dev": true
86 | }
87 | }
88 | },
89 | "@types/babel-types": {
90 | "version": "7.0.9",
91 | "resolved": "https://registry.npmjs.org/@types/babel-types/-/babel-types-7.0.9.tgz",
92 | "integrity": "sha512-qZLoYeXSTgQuK1h7QQS16hqLGdmqtRmN8w/rl3Au/l5x/zkHx+a4VHrHyBsi1I1vtK2oBHxSzKIu0R5p6spdOA==",
93 | "dev": true,
94 | "optional": true
95 | },
96 | "@types/babylon": {
97 | "version": "6.16.5",
98 | "resolved": "https://registry.npmjs.org/@types/babylon/-/babylon-6.16.5.tgz",
99 | "integrity": "sha512-xH2e58elpj1X4ynnKp9qSnWlsRTIs6n3tgLGNfwAGHwePw0mulHQllV34n0T25uYSu1k0hRKkWXF890B1yS47w==",
100 | "dev": true,
101 | "optional": true,
102 | "requires": {
103 | "@types/babel-types": "*"
104 | }
105 | },
106 | "@types/buble": {
107 | "version": "0.19.2",
108 | "resolved": "https://registry.npmjs.org/@types/buble/-/buble-0.19.2.tgz",
109 | "integrity": "sha512-uUD8zIfXMKThmFkahTXDGI3CthFH1kMg2dOm3KLi4GlC5cbARA64bEcUMbbWdWdE73eoc/iBB9PiTMqH0dNS2Q==",
110 | "dev": true,
111 | "requires": {
112 | "magic-string": "^0.25.0"
113 | }
114 | },
115 | "@types/estree": {
116 | "version": "0.0.45",
117 | "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.45.tgz",
118 | "integrity": "sha512-jnqIUKDUqJbDIUxm0Uj7bnlMnRm1T/eZ9N+AVMqhPgzrba2GhGG5o/jCTwmdPK709nEZsGoMzXEDUjcXHa3W0g==",
119 | "dev": true
120 | },
121 | "@types/node": {
122 | "version": "14.14.20",
123 | "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.20.tgz",
124 | "integrity": "sha512-Y93R97Ouif9JEOWPIUyU+eyIdyRqQR0I8Ez1dzku4hDx34NWh4HbtIc3WNzwB1Y9ULvNGeu5B8h8bVL5cAk4/A==",
125 | "dev": true
126 | },
127 | "@vue/component-compiler": {
128 | "version": "4.2.3",
129 | "resolved": "https://registry.npmjs.org/@vue/component-compiler/-/component-compiler-4.2.3.tgz",
130 | "integrity": "sha512-B221AV3T/6PF37WnkoqUKIxBeHXmGuZsi/8pby89MAVSj9zmDdLCEZ7LDT8+DJWbElFrPELgnSvEadXxDRcrJQ==",
131 | "dev": true,
132 | "requires": {
133 | "@vue/component-compiler-utils": "^3.0.0",
134 | "clean-css": "^4.1.11",
135 | "hash-sum": "^1.0.2",
136 | "less": "^3.9.0",
137 | "postcss-modules-sync": "^1.0.0",
138 | "pug": "^2.0.3",
139 | "sass": "^1.18.0",
140 | "source-map": "0.6.*",
141 | "stylus": "^0.54.5"
142 | },
143 | "dependencies": {
144 | "source-map": {
145 | "version": "0.6.1",
146 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
147 | "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
148 | "dev": true
149 | }
150 | }
151 | },
152 | "@vue/component-compiler-utils": {
153 | "version": "3.2.0",
154 | "resolved": "https://registry.npmjs.org/@vue/component-compiler-utils/-/component-compiler-utils-3.2.0.tgz",
155 | "integrity": "sha512-lejBLa7xAMsfiZfNp7Kv51zOzifnb29FwdnMLa96z26kXErPFioSf9BMcePVIQ6/Gc6/mC0UrPpxAWIHyae0vw==",
156 | "dev": true,
157 | "requires": {
158 | "consolidate": "^0.15.1",
159 | "hash-sum": "^1.0.2",
160 | "lru-cache": "^4.1.2",
161 | "merge-source-map": "^1.1.0",
162 | "postcss": "^7.0.14",
163 | "postcss-selector-parser": "^6.0.2",
164 | "prettier": "^1.18.2",
165 | "source-map": "~0.6.1",
166 | "vue-template-es2015-compiler": "^1.9.0"
167 | },
168 | "dependencies": {
169 | "source-map": {
170 | "version": "0.6.1",
171 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
172 | "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
173 | "dev": true
174 | }
175 | }
176 | },
177 | "acorn": {
178 | "version": "6.4.2",
179 | "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.2.tgz",
180 | "integrity": "sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ==",
181 | "dev": true
182 | },
183 | "acorn-dynamic-import": {
184 | "version": "4.0.0",
185 | "resolved": "https://registry.npmjs.org/acorn-dynamic-import/-/acorn-dynamic-import-4.0.0.tgz",
186 | "integrity": "sha512-d3OEjQV4ROpoflsnUA8HozoIR504TFxNivYEUi6uwz0IYhBkTDXGuWlNdMtybRt3nqVx/L6XqMt0FxkXuWKZhw==",
187 | "dev": true
188 | },
189 | "acorn-globals": {
190 | "version": "3.1.0",
191 | "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-3.1.0.tgz",
192 | "integrity": "sha1-/YJw9x+7SZawBPqIDuXUZXOnMb8=",
193 | "dev": true,
194 | "optional": true,
195 | "requires": {
196 | "acorn": "^4.0.4"
197 | },
198 | "dependencies": {
199 | "acorn": {
200 | "version": "4.0.13",
201 | "resolved": "https://registry.npmjs.org/acorn/-/acorn-4.0.13.tgz",
202 | "integrity": "sha1-EFSVrlNh1pe9GVyCUZLhrX8lN4c=",
203 | "dev": true,
204 | "optional": true
205 | }
206 | }
207 | },
208 | "acorn-jsx": {
209 | "version": "5.3.1",
210 | "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.1.tgz",
211 | "integrity": "sha512-K0Ptm/47OKfQRpNQ2J/oIN/3QYiK6FwW+eJbILhsdxh2WTLdl+30o8aGdTbm5JbffpFFAg/g+zi1E+jvJha5ng==",
212 | "dev": true
213 | },
214 | "align-text": {
215 | "version": "0.1.4",
216 | "resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz",
217 | "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=",
218 | "dev": true,
219 | "optional": true,
220 | "requires": {
221 | "kind-of": "^3.0.2",
222 | "longest": "^1.0.1",
223 | "repeat-string": "^1.5.2"
224 | }
225 | },
226 | "ansi-regex": {
227 | "version": "2.1.1",
228 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
229 | "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=",
230 | "dev": true
231 | },
232 | "ansi-styles": {
233 | "version": "3.2.1",
234 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
235 | "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
236 | "dev": true,
237 | "requires": {
238 | "color-convert": "^1.9.0"
239 | }
240 | },
241 | "anymatch": {
242 | "version": "3.1.1",
243 | "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz",
244 | "integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==",
245 | "dev": true,
246 | "optional": true,
247 | "requires": {
248 | "normalize-path": "^3.0.0",
249 | "picomatch": "^2.0.4"
250 | }
251 | },
252 | "asap": {
253 | "version": "2.0.6",
254 | "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz",
255 | "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=",
256 | "dev": true,
257 | "optional": true
258 | },
259 | "atob": {
260 | "version": "2.1.2",
261 | "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz",
262 | "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==",
263 | "dev": true,
264 | "optional": true
265 | },
266 | "babel-runtime": {
267 | "version": "6.26.0",
268 | "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz",
269 | "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=",
270 | "dev": true,
271 | "optional": true,
272 | "requires": {
273 | "core-js": "^2.4.0",
274 | "regenerator-runtime": "^0.11.0"
275 | }
276 | },
277 | "babel-types": {
278 | "version": "6.26.0",
279 | "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz",
280 | "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=",
281 | "dev": true,
282 | "optional": true,
283 | "requires": {
284 | "babel-runtime": "^6.26.0",
285 | "esutils": "^2.0.2",
286 | "lodash": "^4.17.4",
287 | "to-fast-properties": "^1.0.3"
288 | }
289 | },
290 | "babylon": {
291 | "version": "6.18.0",
292 | "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz",
293 | "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==",
294 | "dev": true,
295 | "optional": true
296 | },
297 | "balanced-match": {
298 | "version": "1.0.0",
299 | "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
300 | "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=",
301 | "dev": true
302 | },
303 | "big.js": {
304 | "version": "3.2.0",
305 | "resolved": "https://registry.npmjs.org/big.js/-/big.js-3.2.0.tgz",
306 | "integrity": "sha512-+hN/Zh2D08Mx65pZ/4g5bsmNiZUuChDiQfTUQ7qJr4/kuopCr88xZsAXv6mBoZEsUI4OuGHlX59qE94K2mMW8Q==",
307 | "dev": true
308 | },
309 | "binary-extensions": {
310 | "version": "2.1.0",
311 | "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.1.0.tgz",
312 | "integrity": "sha512-1Yj8h9Q+QDF5FzhMs/c9+6UntbD5MkRfRwac8DoEm9ZfUBZ7tZ55YcGVAzEe4bXsdQHEk+s9S5wsOKVdZrw0tQ==",
313 | "dev": true,
314 | "optional": true
315 | },
316 | "bluebird": {
317 | "version": "3.7.2",
318 | "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz",
319 | "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==",
320 | "dev": true
321 | },
322 | "brace-expansion": {
323 | "version": "1.1.11",
324 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
325 | "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
326 | "dev": true,
327 | "requires": {
328 | "balanced-match": "^1.0.0",
329 | "concat-map": "0.0.1"
330 | }
331 | },
332 | "braces": {
333 | "version": "3.0.2",
334 | "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
335 | "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
336 | "dev": true,
337 | "optional": true,
338 | "requires": {
339 | "fill-range": "^7.0.1"
340 | }
341 | },
342 | "camelcase": {
343 | "version": "1.2.1",
344 | "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz",
345 | "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=",
346 | "dev": true,
347 | "optional": true
348 | },
349 | "center-align": {
350 | "version": "0.1.3",
351 | "resolved": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz",
352 | "integrity": "sha1-qg0yYptu6XIgBBHL1EYckHvCt60=",
353 | "dev": true,
354 | "optional": true,
355 | "requires": {
356 | "align-text": "^0.1.3",
357 | "lazy-cache": "^1.0.3"
358 | }
359 | },
360 | "chalk": {
361 | "version": "2.4.2",
362 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
363 | "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
364 | "dev": true,
365 | "requires": {
366 | "ansi-styles": "^3.2.1",
367 | "escape-string-regexp": "^1.0.5",
368 | "supports-color": "^5.3.0"
369 | }
370 | },
371 | "character-parser": {
372 | "version": "2.2.0",
373 | "resolved": "https://registry.npmjs.org/character-parser/-/character-parser-2.2.0.tgz",
374 | "integrity": "sha1-x84o821LzZdE5f/CxfzeHHMmH8A=",
375 | "dev": true,
376 | "optional": true,
377 | "requires": {
378 | "is-regex": "^1.0.3"
379 | }
380 | },
381 | "chokidar": {
382 | "version": "3.5.0",
383 | "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.0.tgz",
384 | "integrity": "sha512-JgQM9JS92ZbFR4P90EvmzNpSGhpPBGBSj10PILeDyYFwp4h2/D9OM03wsJ4zW1fEp4ka2DGrnUeD7FuvQ2aZ2Q==",
385 | "dev": true,
386 | "optional": true,
387 | "requires": {
388 | "anymatch": "~3.1.1",
389 | "braces": "~3.0.2",
390 | "fsevents": "~2.3.1",
391 | "glob-parent": "~5.1.0",
392 | "is-binary-path": "~2.1.0",
393 | "is-glob": "~4.0.1",
394 | "normalize-path": "~3.0.0",
395 | "readdirp": "~3.5.0"
396 | }
397 | },
398 | "clean-css": {
399 | "version": "4.2.3",
400 | "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-4.2.3.tgz",
401 | "integrity": "sha512-VcMWDN54ZN/DS+g58HYL5/n4Zrqe8vHJpGA8KdgUXFU4fuP/aHNw8eld9SyEIyabIMJX/0RaY/fplOo5hYLSFA==",
402 | "dev": true,
403 | "requires": {
404 | "source-map": "~0.6.0"
405 | },
406 | "dependencies": {
407 | "source-map": {
408 | "version": "0.6.1",
409 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
410 | "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
411 | "dev": true
412 | }
413 | }
414 | },
415 | "cliui": {
416 | "version": "2.1.0",
417 | "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz",
418 | "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=",
419 | "dev": true,
420 | "optional": true,
421 | "requires": {
422 | "center-align": "^0.1.1",
423 | "right-align": "^0.1.1",
424 | "wordwrap": "0.0.2"
425 | }
426 | },
427 | "color-convert": {
428 | "version": "1.9.3",
429 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
430 | "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
431 | "dev": true,
432 | "requires": {
433 | "color-name": "1.1.3"
434 | }
435 | },
436 | "color-name": {
437 | "version": "1.1.3",
438 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
439 | "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=",
440 | "dev": true
441 | },
442 | "commondir": {
443 | "version": "1.0.1",
444 | "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz",
445 | "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=",
446 | "dev": true
447 | },
448 | "concat-map": {
449 | "version": "0.0.1",
450 | "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
451 | "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=",
452 | "dev": true
453 | },
454 | "consolidate": {
455 | "version": "0.15.1",
456 | "resolved": "https://registry.npmjs.org/consolidate/-/consolidate-0.15.1.tgz",
457 | "integrity": "sha512-DW46nrsMJgy9kqAbPt5rKaCr7uFtpo4mSUvLHIUbJEjm0vo+aY5QLwBUq3FK4tRnJr/X0Psc0C4jf/h+HtXSMw==",
458 | "dev": true,
459 | "requires": {
460 | "bluebird": "^3.1.1"
461 | }
462 | },
463 | "constantinople": {
464 | "version": "3.1.2",
465 | "resolved": "https://registry.npmjs.org/constantinople/-/constantinople-3.1.2.tgz",
466 | "integrity": "sha512-yePcBqEFhLOqSBtwYOGGS1exHo/s1xjekXiinh4itpNQGCu4KA1euPh1fg07N2wMITZXQkBz75Ntdt1ctGZouw==",
467 | "dev": true,
468 | "optional": true,
469 | "requires": {
470 | "@types/babel-types": "^7.0.0",
471 | "@types/babylon": "^6.16.2",
472 | "babel-types": "^6.26.0",
473 | "babylon": "^6.18.0"
474 | }
475 | },
476 | "copy-anything": {
477 | "version": "2.0.1",
478 | "resolved": "https://registry.npmjs.org/copy-anything/-/copy-anything-2.0.1.tgz",
479 | "integrity": "sha512-lA57e7viQHOdPQcrytv5jFeudZZOXuyk47lZym279FiDQ8jeZomXiGuVf6ffMKkJ+3TIai3J1J3yi6M+/4U35g==",
480 | "dev": true,
481 | "optional": true,
482 | "requires": {
483 | "is-what": "^3.7.1"
484 | }
485 | },
486 | "core-js": {
487 | "version": "2.6.12",
488 | "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.12.tgz",
489 | "integrity": "sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==",
490 | "dev": true,
491 | "optional": true
492 | },
493 | "css": {
494 | "version": "2.2.4",
495 | "resolved": "https://registry.npmjs.org/css/-/css-2.2.4.tgz",
496 | "integrity": "sha512-oUnjmWpy0niI3x/mPL8dVEI1l7MnG3+HHyRPHf+YFSbK+svOhXpmSOcDURUh2aOCgl2grzrOPt1nHLuCVFULLw==",
497 | "dev": true,
498 | "optional": true,
499 | "requires": {
500 | "inherits": "^2.0.3",
501 | "source-map": "^0.6.1",
502 | "source-map-resolve": "^0.5.2",
503 | "urix": "^0.1.0"
504 | },
505 | "dependencies": {
506 | "source-map": {
507 | "version": "0.6.1",
508 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
509 | "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
510 | "dev": true,
511 | "optional": true
512 | }
513 | }
514 | },
515 | "css-parse": {
516 | "version": "2.0.0",
517 | "resolved": "https://registry.npmjs.org/css-parse/-/css-parse-2.0.0.tgz",
518 | "integrity": "sha1-pGjuZnwW2BzPBcWMONKpfHgNv9Q=",
519 | "dev": true,
520 | "optional": true,
521 | "requires": {
522 | "css": "^2.0.0"
523 | }
524 | },
525 | "css-selector-tokenizer": {
526 | "version": "0.7.3",
527 | "resolved": "https://registry.npmjs.org/css-selector-tokenizer/-/css-selector-tokenizer-0.7.3.tgz",
528 | "integrity": "sha512-jWQv3oCEL5kMErj4wRnK/OPoBi0D+P1FR2cDCKYPaMeD2eW3/mttav8HT4hT1CKopiJI/psEULjkClhvJo4Lvg==",
529 | "dev": true,
530 | "requires": {
531 | "cssesc": "^3.0.0",
532 | "fastparse": "^1.1.2"
533 | }
534 | },
535 | "cssesc": {
536 | "version": "3.0.0",
537 | "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz",
538 | "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==",
539 | "dev": true
540 | },
541 | "de-indent": {
542 | "version": "1.0.2",
543 | "resolved": "https://registry.npmjs.org/de-indent/-/de-indent-1.0.2.tgz",
544 | "integrity": "sha1-sgOOhG3DO6pXlhKNCAS0VbjB4h0=",
545 | "dev": true
546 | },
547 | "debug": {
548 | "version": "4.3.1",
549 | "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz",
550 | "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==",
551 | "dev": true,
552 | "requires": {
553 | "ms": "2.1.2"
554 | },
555 | "dependencies": {
556 | "ms": {
557 | "version": "2.1.2",
558 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
559 | "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
560 | "dev": true
561 | }
562 | }
563 | },
564 | "decamelize": {
565 | "version": "1.2.0",
566 | "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz",
567 | "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=",
568 | "dev": true,
569 | "optional": true
570 | },
571 | "decode-uri-component": {
572 | "version": "0.2.0",
573 | "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz",
574 | "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=",
575 | "dev": true,
576 | "optional": true
577 | },
578 | "doctypes": {
579 | "version": "1.1.0",
580 | "resolved": "https://registry.npmjs.org/doctypes/-/doctypes-1.1.0.tgz",
581 | "integrity": "sha1-6oCxBqh1OHdOijpKWv4pPeSJ4Kk=",
582 | "dev": true,
583 | "optional": true
584 | },
585 | "emojis-list": {
586 | "version": "2.1.0",
587 | "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz",
588 | "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=",
589 | "dev": true
590 | },
591 | "errno": {
592 | "version": "0.1.8",
593 | "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.8.tgz",
594 | "integrity": "sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==",
595 | "dev": true,
596 | "optional": true,
597 | "requires": {
598 | "prr": "~1.0.1"
599 | }
600 | },
601 | "escape-string-regexp": {
602 | "version": "1.0.5",
603 | "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
604 | "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=",
605 | "dev": true
606 | },
607 | "estree-walker": {
608 | "version": "1.0.1",
609 | "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz",
610 | "integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==",
611 | "dev": true
612 | },
613 | "esutils": {
614 | "version": "2.0.3",
615 | "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz",
616 | "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==",
617 | "dev": true,
618 | "optional": true
619 | },
620 | "fastparse": {
621 | "version": "1.1.2",
622 | "resolved": "https://registry.npmjs.org/fastparse/-/fastparse-1.1.2.tgz",
623 | "integrity": "sha512-483XLLxTVIwWK3QTrMGRqUfUpoOs/0hbQrl2oz4J0pAcm3A3bu84wxTFqGqkJzewCLdME38xJLJAxBABfQT8sQ==",
624 | "dev": true
625 | },
626 | "fill-range": {
627 | "version": "7.0.1",
628 | "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
629 | "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
630 | "dev": true,
631 | "optional": true,
632 | "requires": {
633 | "to-regex-range": "^5.0.1"
634 | }
635 | },
636 | "fs.realpath": {
637 | "version": "1.0.0",
638 | "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
639 | "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=",
640 | "dev": true
641 | },
642 | "fsevents": {
643 | "version": "2.3.1",
644 | "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.1.tgz",
645 | "integrity": "sha512-YR47Eg4hChJGAB1O3yEAOkGO+rlzutoICGqGo9EZ4lKWokzZRSyIW1QmTzqjtw8MJdj9srP869CuWw/hyzSiBw==",
646 | "dev": true,
647 | "optional": true
648 | },
649 | "function-bind": {
650 | "version": "1.1.1",
651 | "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
652 | "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==",
653 | "dev": true
654 | },
655 | "generic-names": {
656 | "version": "1.0.3",
657 | "resolved": "https://registry.npmjs.org/generic-names/-/generic-names-1.0.3.tgz",
658 | "integrity": "sha1-LXhqEhruUIh2eWk56OO/+DbCCRc=",
659 | "dev": true,
660 | "requires": {
661 | "loader-utils": "^0.2.16"
662 | }
663 | },
664 | "glob": {
665 | "version": "7.1.6",
666 | "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz",
667 | "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==",
668 | "dev": true,
669 | "requires": {
670 | "fs.realpath": "^1.0.0",
671 | "inflight": "^1.0.4",
672 | "inherits": "2",
673 | "minimatch": "^3.0.4",
674 | "once": "^1.3.0",
675 | "path-is-absolute": "^1.0.0"
676 | }
677 | },
678 | "glob-parent": {
679 | "version": "5.1.1",
680 | "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz",
681 | "integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==",
682 | "dev": true,
683 | "optional": true,
684 | "requires": {
685 | "is-glob": "^4.0.1"
686 | }
687 | },
688 | "graceful-fs": {
689 | "version": "4.2.4",
690 | "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz",
691 | "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==",
692 | "dev": true,
693 | "optional": true
694 | },
695 | "has": {
696 | "version": "1.0.3",
697 | "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
698 | "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
699 | "dev": true,
700 | "requires": {
701 | "function-bind": "^1.1.1"
702 | }
703 | },
704 | "has-ansi": {
705 | "version": "2.0.0",
706 | "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz",
707 | "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=",
708 | "dev": true,
709 | "requires": {
710 | "ansi-regex": "^2.0.0"
711 | }
712 | },
713 | "has-flag": {
714 | "version": "3.0.0",
715 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
716 | "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=",
717 | "dev": true
718 | },
719 | "has-symbols": {
720 | "version": "1.0.1",
721 | "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz",
722 | "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==",
723 | "dev": true,
724 | "optional": true
725 | },
726 | "hash-sum": {
727 | "version": "1.0.2",
728 | "resolved": "https://registry.npmjs.org/hash-sum/-/hash-sum-1.0.2.tgz",
729 | "integrity": "sha1-M7QHd3VMZDJXPBIMw4CLvRDUfwQ=",
730 | "dev": true
731 | },
732 | "he": {
733 | "version": "1.2.0",
734 | "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz",
735 | "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==",
736 | "dev": true
737 | },
738 | "icss-replace-symbols": {
739 | "version": "1.1.0",
740 | "resolved": "https://registry.npmjs.org/icss-replace-symbols/-/icss-replace-symbols-1.1.0.tgz",
741 | "integrity": "sha1-Bupvg2ead0njhs/h/oEq5dsiPe0=",
742 | "dev": true
743 | },
744 | "image-size": {
745 | "version": "0.5.5",
746 | "resolved": "https://registry.npmjs.org/image-size/-/image-size-0.5.5.tgz",
747 | "integrity": "sha1-Cd/Uq50g4p6xw+gLiZA3jfnjy5w=",
748 | "dev": true,
749 | "optional": true
750 | },
751 | "indexes-of": {
752 | "version": "1.0.1",
753 | "resolved": "https://registry.npmjs.org/indexes-of/-/indexes-of-1.0.1.tgz",
754 | "integrity": "sha1-8w9xbI4r00bHtn0985FVZqfAVgc=",
755 | "dev": true
756 | },
757 | "inflight": {
758 | "version": "1.0.6",
759 | "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
760 | "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
761 | "dev": true,
762 | "requires": {
763 | "once": "^1.3.0",
764 | "wrappy": "1"
765 | }
766 | },
767 | "inherits": {
768 | "version": "2.0.4",
769 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
770 | "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
771 | "dev": true
772 | },
773 | "is-binary-path": {
774 | "version": "2.1.0",
775 | "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz",
776 | "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==",
777 | "dev": true,
778 | "optional": true,
779 | "requires": {
780 | "binary-extensions": "^2.0.0"
781 | }
782 | },
783 | "is-buffer": {
784 | "version": "1.1.6",
785 | "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz",
786 | "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==",
787 | "dev": true,
788 | "optional": true
789 | },
790 | "is-core-module": {
791 | "version": "2.2.0",
792 | "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.2.0.tgz",
793 | "integrity": "sha512-XRAfAdyyY5F5cOXn7hYQDqh2Xmii+DEfIcQGxK/uNwMHhIkPWO0g8msXcbzLe+MpGoR951MlqM/2iIlU4vKDdQ==",
794 | "dev": true,
795 | "requires": {
796 | "has": "^1.0.3"
797 | }
798 | },
799 | "is-expression": {
800 | "version": "3.0.0",
801 | "resolved": "https://registry.npmjs.org/is-expression/-/is-expression-3.0.0.tgz",
802 | "integrity": "sha1-Oayqa+f9HzRx3ELHQW5hwkMXrJ8=",
803 | "dev": true,
804 | "optional": true,
805 | "requires": {
806 | "acorn": "~4.0.2",
807 | "object-assign": "^4.0.1"
808 | },
809 | "dependencies": {
810 | "acorn": {
811 | "version": "4.0.13",
812 | "resolved": "https://registry.npmjs.org/acorn/-/acorn-4.0.13.tgz",
813 | "integrity": "sha1-EFSVrlNh1pe9GVyCUZLhrX8lN4c=",
814 | "dev": true,
815 | "optional": true
816 | }
817 | }
818 | },
819 | "is-extglob": {
820 | "version": "2.1.1",
821 | "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
822 | "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=",
823 | "dev": true,
824 | "optional": true
825 | },
826 | "is-glob": {
827 | "version": "4.0.1",
828 | "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz",
829 | "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==",
830 | "dev": true,
831 | "optional": true,
832 | "requires": {
833 | "is-extglob": "^2.1.1"
834 | }
835 | },
836 | "is-number": {
837 | "version": "7.0.0",
838 | "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
839 | "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
840 | "dev": true,
841 | "optional": true
842 | },
843 | "is-promise": {
844 | "version": "2.2.2",
845 | "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.2.2.tgz",
846 | "integrity": "sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==",
847 | "dev": true,
848 | "optional": true
849 | },
850 | "is-reference": {
851 | "version": "1.2.1",
852 | "resolved": "https://registry.npmjs.org/is-reference/-/is-reference-1.2.1.tgz",
853 | "integrity": "sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==",
854 | "dev": true,
855 | "requires": {
856 | "@types/estree": "*"
857 | }
858 | },
859 | "is-regex": {
860 | "version": "1.1.1",
861 | "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.1.tgz",
862 | "integrity": "sha512-1+QkEcxiLlB7VEyFtyBg94e08OAsvq7FUBgApTq/w2ymCLyKJgDPsybBENVtA7XCQEgEXxKPonG+mvYRxh/LIg==",
863 | "dev": true,
864 | "optional": true,
865 | "requires": {
866 | "has-symbols": "^1.0.1"
867 | }
868 | },
869 | "is-what": {
870 | "version": "3.12.0",
871 | "resolved": "https://registry.npmjs.org/is-what/-/is-what-3.12.0.tgz",
872 | "integrity": "sha512-2ilQz5/f/o9V7WRWJQmpFYNmQFZ9iM+OXRonZKcYgTkCzjb949Vi4h282PD1UfmgHk666rcWonbRJ++KI41VGw==",
873 | "dev": true,
874 | "optional": true
875 | },
876 | "js-base64": {
877 | "version": "2.6.4",
878 | "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.6.4.tgz",
879 | "integrity": "sha512-pZe//GGmwJndub7ZghVHz7vjb2LgC1m8B07Au3eYqeqv9emhESByMXxaEgkUkEqJe87oBbSniGYoQNIBklc7IQ==",
880 | "dev": true
881 | },
882 | "js-stringify": {
883 | "version": "1.0.2",
884 | "resolved": "https://registry.npmjs.org/js-stringify/-/js-stringify-1.0.2.tgz",
885 | "integrity": "sha1-Fzb939lyTyijaCrcYjCufk6Weds=",
886 | "dev": true,
887 | "optional": true
888 | },
889 | "json5": {
890 | "version": "0.5.1",
891 | "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz",
892 | "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=",
893 | "dev": true
894 | },
895 | "jstransformer": {
896 | "version": "1.0.0",
897 | "resolved": "https://registry.npmjs.org/jstransformer/-/jstransformer-1.0.0.tgz",
898 | "integrity": "sha1-7Yvwkh4vPx7U1cGkT2hwntJHIsM=",
899 | "dev": true,
900 | "optional": true,
901 | "requires": {
902 | "is-promise": "^2.0.0",
903 | "promise": "^7.0.1"
904 | }
905 | },
906 | "kind-of": {
907 | "version": "3.2.2",
908 | "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
909 | "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
910 | "dev": true,
911 | "optional": true,
912 | "requires": {
913 | "is-buffer": "^1.1.5"
914 | }
915 | },
916 | "lazy-cache": {
917 | "version": "1.0.4",
918 | "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz",
919 | "integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4=",
920 | "dev": true,
921 | "optional": true
922 | },
923 | "less": {
924 | "version": "3.13.1",
925 | "resolved": "https://registry.npmjs.org/less/-/less-3.13.1.tgz",
926 | "integrity": "sha512-SwA1aQXGUvp+P5XdZslUOhhLnClSLIjWvJhmd+Vgib5BFIr9lMNlQwmwUNOjXThF/A0x+MCYYPeWEfeWiLRnTw==",
927 | "dev": true,
928 | "optional": true,
929 | "requires": {
930 | "copy-anything": "^2.0.1",
931 | "errno": "^0.1.1",
932 | "graceful-fs": "^4.1.2",
933 | "image-size": "~0.5.0",
934 | "make-dir": "^2.1.0",
935 | "mime": "^1.4.1",
936 | "native-request": "^1.0.5",
937 | "source-map": "~0.6.0",
938 | "tslib": "^1.10.0"
939 | },
940 | "dependencies": {
941 | "source-map": {
942 | "version": "0.6.1",
943 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
944 | "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
945 | "dev": true,
946 | "optional": true
947 | }
948 | }
949 | },
950 | "loader-utils": {
951 | "version": "0.2.17",
952 | "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-0.2.17.tgz",
953 | "integrity": "sha1-+G5jdNQyBabmxg6RlvF8Apm/s0g=",
954 | "dev": true,
955 | "requires": {
956 | "big.js": "^3.1.3",
957 | "emojis-list": "^2.0.0",
958 | "json5": "^0.5.0",
959 | "object-assign": "^4.0.1"
960 | }
961 | },
962 | "lodash": {
963 | "version": "4.17.20",
964 | "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz",
965 | "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==",
966 | "dev": true,
967 | "optional": true
968 | },
969 | "longest": {
970 | "version": "1.0.1",
971 | "resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz",
972 | "integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc=",
973 | "dev": true,
974 | "optional": true
975 | },
976 | "lru-cache": {
977 | "version": "4.1.5",
978 | "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz",
979 | "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==",
980 | "dev": true,
981 | "requires": {
982 | "pseudomap": "^1.0.2",
983 | "yallist": "^2.1.2"
984 | }
985 | },
986 | "magic-string": {
987 | "version": "0.25.7",
988 | "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.7.tgz",
989 | "integrity": "sha512-4CrMT5DOHTDk4HYDlzmwu4FVCcIYI8gauveasrdCu2IKIFOJ3f0v/8MDGJCDL9oD2ppz/Av1b0Nj345H9M+XIA==",
990 | "dev": true,
991 | "requires": {
992 | "sourcemap-codec": "^1.4.4"
993 | }
994 | },
995 | "make-dir": {
996 | "version": "2.1.0",
997 | "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz",
998 | "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==",
999 | "dev": true,
1000 | "optional": true,
1001 | "requires": {
1002 | "pify": "^4.0.1",
1003 | "semver": "^5.6.0"
1004 | }
1005 | },
1006 | "merge-source-map": {
1007 | "version": "1.1.0",
1008 | "resolved": "https://registry.npmjs.org/merge-source-map/-/merge-source-map-1.1.0.tgz",
1009 | "integrity": "sha512-Qkcp7P2ygktpMPh2mCQZaf3jhN6D3Z/qVZHSdWvQ+2Ef5HgRAPBO57A77+ENm0CPx2+1Ce/MYKi3ymqdfuqibw==",
1010 | "dev": true,
1011 | "requires": {
1012 | "source-map": "^0.6.1"
1013 | },
1014 | "dependencies": {
1015 | "source-map": {
1016 | "version": "0.6.1",
1017 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
1018 | "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
1019 | "dev": true
1020 | }
1021 | }
1022 | },
1023 | "mime": {
1024 | "version": "1.6.0",
1025 | "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz",
1026 | "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==",
1027 | "dev": true,
1028 | "optional": true
1029 | },
1030 | "minimatch": {
1031 | "version": "3.0.4",
1032 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
1033 | "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
1034 | "dev": true,
1035 | "requires": {
1036 | "brace-expansion": "^1.1.7"
1037 | }
1038 | },
1039 | "minimist": {
1040 | "version": "1.2.5",
1041 | "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz",
1042 | "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==",
1043 | "dev": true
1044 | },
1045 | "mkdirp": {
1046 | "version": "1.0.4",
1047 | "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz",
1048 | "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==",
1049 | "dev": true,
1050 | "optional": true
1051 | },
1052 | "ms": {
1053 | "version": "2.0.0",
1054 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
1055 | "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
1056 | "dev": true,
1057 | "optional": true
1058 | },
1059 | "native-request": {
1060 | "version": "1.0.8",
1061 | "resolved": "https://registry.npmjs.org/native-request/-/native-request-1.0.8.tgz",
1062 | "integrity": "sha512-vU2JojJVelUGp6jRcLwToPoWGxSx23z/0iX+I77J3Ht17rf2INGjrhOoQnjVo60nQd8wVsgzKkPfRXBiVdD2ag==",
1063 | "dev": true,
1064 | "optional": true
1065 | },
1066 | "normalize-path": {
1067 | "version": "3.0.0",
1068 | "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
1069 | "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
1070 | "dev": true,
1071 | "optional": true
1072 | },
1073 | "object-assign": {
1074 | "version": "4.1.1",
1075 | "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
1076 | "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=",
1077 | "dev": true
1078 | },
1079 | "once": {
1080 | "version": "1.4.0",
1081 | "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
1082 | "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
1083 | "dev": true,
1084 | "requires": {
1085 | "wrappy": "1"
1086 | }
1087 | },
1088 | "path-is-absolute": {
1089 | "version": "1.0.1",
1090 | "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
1091 | "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=",
1092 | "dev": true
1093 | },
1094 | "path-parse": {
1095 | "version": "1.0.6",
1096 | "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz",
1097 | "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==",
1098 | "dev": true
1099 | },
1100 | "picomatch": {
1101 | "version": "2.2.2",
1102 | "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz",
1103 | "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==",
1104 | "dev": true
1105 | },
1106 | "pify": {
1107 | "version": "4.0.1",
1108 | "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz",
1109 | "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==",
1110 | "dev": true,
1111 | "optional": true
1112 | },
1113 | "postcss": {
1114 | "version": "7.0.35",
1115 | "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz",
1116 | "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==",
1117 | "dev": true,
1118 | "requires": {
1119 | "chalk": "^2.4.2",
1120 | "source-map": "^0.6.1",
1121 | "supports-color": "^6.1.0"
1122 | },
1123 | "dependencies": {
1124 | "source-map": {
1125 | "version": "0.6.1",
1126 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
1127 | "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
1128 | "dev": true
1129 | },
1130 | "supports-color": {
1131 | "version": "6.1.0",
1132 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz",
1133 | "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==",
1134 | "dev": true,
1135 | "requires": {
1136 | "has-flag": "^3.0.0"
1137 | }
1138 | }
1139 | }
1140 | },
1141 | "postcss-modules-local-by-default": {
1142 | "version": "1.2.0",
1143 | "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-1.2.0.tgz",
1144 | "integrity": "sha1-99gMOYxaOT+nlkRmvRlQCn1hwGk=",
1145 | "dev": true,
1146 | "requires": {
1147 | "css-selector-tokenizer": "^0.7.0",
1148 | "postcss": "^6.0.1"
1149 | },
1150 | "dependencies": {
1151 | "postcss": {
1152 | "version": "6.0.23",
1153 | "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz",
1154 | "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==",
1155 | "dev": true,
1156 | "requires": {
1157 | "chalk": "^2.4.1",
1158 | "source-map": "^0.6.1",
1159 | "supports-color": "^5.4.0"
1160 | }
1161 | },
1162 | "source-map": {
1163 | "version": "0.6.1",
1164 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
1165 | "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
1166 | "dev": true
1167 | }
1168 | }
1169 | },
1170 | "postcss-modules-scope": {
1171 | "version": "1.1.0",
1172 | "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-1.1.0.tgz",
1173 | "integrity": "sha1-1upkmUx5+XtipytCb75gVqGUu5A=",
1174 | "dev": true,
1175 | "requires": {
1176 | "css-selector-tokenizer": "^0.7.0",
1177 | "postcss": "^6.0.1"
1178 | },
1179 | "dependencies": {
1180 | "postcss": {
1181 | "version": "6.0.23",
1182 | "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz",
1183 | "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==",
1184 | "dev": true,
1185 | "requires": {
1186 | "chalk": "^2.4.1",
1187 | "source-map": "^0.6.1",
1188 | "supports-color": "^5.4.0"
1189 | }
1190 | },
1191 | "source-map": {
1192 | "version": "0.6.1",
1193 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
1194 | "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
1195 | "dev": true
1196 | }
1197 | }
1198 | },
1199 | "postcss-modules-sync": {
1200 | "version": "1.0.0",
1201 | "resolved": "https://registry.npmjs.org/postcss-modules-sync/-/postcss-modules-sync-1.0.0.tgz",
1202 | "integrity": "sha1-YZpxnPeN0WpINBNRQLMkz3czS+E=",
1203 | "dev": true,
1204 | "requires": {
1205 | "generic-names": "^1.0.2",
1206 | "icss-replace-symbols": "^1.0.2",
1207 | "postcss": "^5.2.5",
1208 | "postcss-modules-local-by-default": "^1.1.1",
1209 | "postcss-modules-scope": "^1.0.2",
1210 | "string-hash": "^1.1.0"
1211 | },
1212 | "dependencies": {
1213 | "ansi-styles": {
1214 | "version": "2.2.1",
1215 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
1216 | "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
1217 | "dev": true
1218 | },
1219 | "chalk": {
1220 | "version": "1.1.3",
1221 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
1222 | "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
1223 | "dev": true,
1224 | "requires": {
1225 | "ansi-styles": "^2.2.1",
1226 | "escape-string-regexp": "^1.0.2",
1227 | "has-ansi": "^2.0.0",
1228 | "strip-ansi": "^3.0.0",
1229 | "supports-color": "^2.0.0"
1230 | },
1231 | "dependencies": {
1232 | "supports-color": {
1233 | "version": "2.0.0",
1234 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
1235 | "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
1236 | "dev": true
1237 | }
1238 | }
1239 | },
1240 | "has-flag": {
1241 | "version": "1.0.0",
1242 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz",
1243 | "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=",
1244 | "dev": true
1245 | },
1246 | "postcss": {
1247 | "version": "5.2.18",
1248 | "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz",
1249 | "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==",
1250 | "dev": true,
1251 | "requires": {
1252 | "chalk": "^1.1.3",
1253 | "js-base64": "^2.1.9",
1254 | "source-map": "^0.5.6",
1255 | "supports-color": "^3.2.3"
1256 | }
1257 | },
1258 | "source-map": {
1259 | "version": "0.5.7",
1260 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
1261 | "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
1262 | "dev": true
1263 | },
1264 | "supports-color": {
1265 | "version": "3.2.3",
1266 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz",
1267 | "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=",
1268 | "dev": true,
1269 | "requires": {
1270 | "has-flag": "^1.0.0"
1271 | }
1272 | }
1273 | }
1274 | },
1275 | "postcss-selector-parser": {
1276 | "version": "6.0.4",
1277 | "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.4.tgz",
1278 | "integrity": "sha512-gjMeXBempyInaBqpp8gODmwZ52WaYsVOsfr4L4lDQ7n3ncD6mEyySiDtgzCT+NYC0mmeOLvtsF8iaEf0YT6dBw==",
1279 | "dev": true,
1280 | "requires": {
1281 | "cssesc": "^3.0.0",
1282 | "indexes-of": "^1.0.1",
1283 | "uniq": "^1.0.1",
1284 | "util-deprecate": "^1.0.2"
1285 | }
1286 | },
1287 | "prettier": {
1288 | "version": "1.19.1",
1289 | "resolved": "https://registry.npmjs.org/prettier/-/prettier-1.19.1.tgz",
1290 | "integrity": "sha512-s7PoyDv/II1ObgQunCbB9PdLmUcBZcnWOcxDh7O0N/UwDEsHyqkW+Qh28jW+mVuCdx7gLB0BotYI1Y6uI9iyew==",
1291 | "dev": true,
1292 | "optional": true
1293 | },
1294 | "promise": {
1295 | "version": "7.3.1",
1296 | "resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz",
1297 | "integrity": "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==",
1298 | "dev": true,
1299 | "optional": true,
1300 | "requires": {
1301 | "asap": "~2.0.3"
1302 | }
1303 | },
1304 | "prr": {
1305 | "version": "1.0.1",
1306 | "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz",
1307 | "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=",
1308 | "dev": true,
1309 | "optional": true
1310 | },
1311 | "pseudomap": {
1312 | "version": "1.0.2",
1313 | "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz",
1314 | "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=",
1315 | "dev": true
1316 | },
1317 | "pug": {
1318 | "version": "2.0.4",
1319 | "resolved": "https://registry.npmjs.org/pug/-/pug-2.0.4.tgz",
1320 | "integrity": "sha512-XhoaDlvi6NIzL49nu094R2NA6P37ijtgMDuWE+ofekDChvfKnzFal60bhSdiy8y2PBO6fmz3oMEIcfpBVRUdvw==",
1321 | "dev": true,
1322 | "optional": true,
1323 | "requires": {
1324 | "pug-code-gen": "^2.0.2",
1325 | "pug-filters": "^3.1.1",
1326 | "pug-lexer": "^4.1.0",
1327 | "pug-linker": "^3.0.6",
1328 | "pug-load": "^2.0.12",
1329 | "pug-parser": "^5.0.1",
1330 | "pug-runtime": "^2.0.5",
1331 | "pug-strip-comments": "^1.0.4"
1332 | }
1333 | },
1334 | "pug-attrs": {
1335 | "version": "2.0.4",
1336 | "resolved": "https://registry.npmjs.org/pug-attrs/-/pug-attrs-2.0.4.tgz",
1337 | "integrity": "sha512-TaZ4Z2TWUPDJcV3wjU3RtUXMrd3kM4Wzjbe3EWnSsZPsJ3LDI0F3yCnf2/W7PPFF+edUFQ0HgDL1IoxSz5K8EQ==",
1338 | "dev": true,
1339 | "optional": true,
1340 | "requires": {
1341 | "constantinople": "^3.0.1",
1342 | "js-stringify": "^1.0.1",
1343 | "pug-runtime": "^2.0.5"
1344 | }
1345 | },
1346 | "pug-code-gen": {
1347 | "version": "2.0.2",
1348 | "resolved": "https://registry.npmjs.org/pug-code-gen/-/pug-code-gen-2.0.2.tgz",
1349 | "integrity": "sha512-kROFWv/AHx/9CRgoGJeRSm+4mLWchbgpRzTEn8XCiwwOy6Vh0gAClS8Vh5TEJ9DBjaP8wCjS3J6HKsEsYdvaCw==",
1350 | "dev": true,
1351 | "optional": true,
1352 | "requires": {
1353 | "constantinople": "^3.1.2",
1354 | "doctypes": "^1.1.0",
1355 | "js-stringify": "^1.0.1",
1356 | "pug-attrs": "^2.0.4",
1357 | "pug-error": "^1.3.3",
1358 | "pug-runtime": "^2.0.5",
1359 | "void-elements": "^2.0.1",
1360 | "with": "^5.0.0"
1361 | }
1362 | },
1363 | "pug-error": {
1364 | "version": "1.3.3",
1365 | "resolved": "https://registry.npmjs.org/pug-error/-/pug-error-1.3.3.tgz",
1366 | "integrity": "sha512-qE3YhESP2mRAWMFJgKdtT5D7ckThRScXRwkfo+Erqga7dyJdY3ZquspprMCj/9sJ2ijm5hXFWQE/A3l4poMWiQ==",
1367 | "dev": true,
1368 | "optional": true
1369 | },
1370 | "pug-filters": {
1371 | "version": "3.1.1",
1372 | "resolved": "https://registry.npmjs.org/pug-filters/-/pug-filters-3.1.1.tgz",
1373 | "integrity": "sha512-lFfjNyGEyVWC4BwX0WyvkoWLapI5xHSM3xZJFUhx4JM4XyyRdO8Aucc6pCygnqV2uSgJFaJWW3Ft1wCWSoQkQg==",
1374 | "dev": true,
1375 | "optional": true,
1376 | "requires": {
1377 | "clean-css": "^4.1.11",
1378 | "constantinople": "^3.0.1",
1379 | "jstransformer": "1.0.0",
1380 | "pug-error": "^1.3.3",
1381 | "pug-walk": "^1.1.8",
1382 | "resolve": "^1.1.6",
1383 | "uglify-js": "^2.6.1"
1384 | }
1385 | },
1386 | "pug-lexer": {
1387 | "version": "4.1.0",
1388 | "resolved": "https://registry.npmjs.org/pug-lexer/-/pug-lexer-4.1.0.tgz",
1389 | "integrity": "sha512-i55yzEBtjm0mlplW4LoANq7k3S8gDdfC6+LThGEvsK4FuobcKfDAwt6V4jKPH9RtiE3a2Akfg5UpafZ1OksaPA==",
1390 | "dev": true,
1391 | "optional": true,
1392 | "requires": {
1393 | "character-parser": "^2.1.1",
1394 | "is-expression": "^3.0.0",
1395 | "pug-error": "^1.3.3"
1396 | }
1397 | },
1398 | "pug-linker": {
1399 | "version": "3.0.6",
1400 | "resolved": "https://registry.npmjs.org/pug-linker/-/pug-linker-3.0.6.tgz",
1401 | "integrity": "sha512-bagfuHttfQOpANGy1Y6NJ+0mNb7dD2MswFG2ZKj22s8g0wVsojpRlqveEQHmgXXcfROB2RT6oqbPYr9EN2ZWzg==",
1402 | "dev": true,
1403 | "optional": true,
1404 | "requires": {
1405 | "pug-error": "^1.3.3",
1406 | "pug-walk": "^1.1.8"
1407 | }
1408 | },
1409 | "pug-load": {
1410 | "version": "2.0.12",
1411 | "resolved": "https://registry.npmjs.org/pug-load/-/pug-load-2.0.12.tgz",
1412 | "integrity": "sha512-UqpgGpyyXRYgJs/X60sE6SIf8UBsmcHYKNaOccyVLEuT6OPBIMo6xMPhoJnqtB3Q3BbO4Z3Bjz5qDsUWh4rXsg==",
1413 | "dev": true,
1414 | "optional": true,
1415 | "requires": {
1416 | "object-assign": "^4.1.0",
1417 | "pug-walk": "^1.1.8"
1418 | }
1419 | },
1420 | "pug-parser": {
1421 | "version": "5.0.1",
1422 | "resolved": "https://registry.npmjs.org/pug-parser/-/pug-parser-5.0.1.tgz",
1423 | "integrity": "sha512-nGHqK+w07p5/PsPIyzkTQfzlYfuqoiGjaoqHv1LjOv2ZLXmGX1O+4Vcvps+P4LhxZ3drYSljjq4b+Naid126wA==",
1424 | "dev": true,
1425 | "optional": true,
1426 | "requires": {
1427 | "pug-error": "^1.3.3",
1428 | "token-stream": "0.0.1"
1429 | }
1430 | },
1431 | "pug-runtime": {
1432 | "version": "2.0.5",
1433 | "resolved": "https://registry.npmjs.org/pug-runtime/-/pug-runtime-2.0.5.tgz",
1434 | "integrity": "sha512-P+rXKn9un4fQY77wtpcuFyvFaBww7/91f3jHa154qU26qFAnOe6SW1CbIDcxiG5lLK9HazYrMCCuDvNgDQNptw==",
1435 | "dev": true,
1436 | "optional": true
1437 | },
1438 | "pug-strip-comments": {
1439 | "version": "1.0.4",
1440 | "resolved": "https://registry.npmjs.org/pug-strip-comments/-/pug-strip-comments-1.0.4.tgz",
1441 | "integrity": "sha512-i5j/9CS4yFhSxHp5iKPHwigaig/VV9g+FgReLJWWHEHbvKsbqL0oP/K5ubuLco6Wu3Kan5p7u7qk8A4oLLh6vw==",
1442 | "dev": true,
1443 | "optional": true,
1444 | "requires": {
1445 | "pug-error": "^1.3.3"
1446 | }
1447 | },
1448 | "pug-walk": {
1449 | "version": "1.1.8",
1450 | "resolved": "https://registry.npmjs.org/pug-walk/-/pug-walk-1.1.8.tgz",
1451 | "integrity": "sha512-GMu3M5nUL3fju4/egXwZO0XLi6fW/K3T3VTgFQ14GxNi8btlxgT5qZL//JwZFm/2Fa64J/PNS8AZeys3wiMkVA==",
1452 | "dev": true,
1453 | "optional": true
1454 | },
1455 | "querystring": {
1456 | "version": "0.2.0",
1457 | "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz",
1458 | "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=",
1459 | "dev": true
1460 | },
1461 | "readdirp": {
1462 | "version": "3.5.0",
1463 | "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.5.0.tgz",
1464 | "integrity": "sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ==",
1465 | "dev": true,
1466 | "optional": true,
1467 | "requires": {
1468 | "picomatch": "^2.2.1"
1469 | }
1470 | },
1471 | "regenerate": {
1472 | "version": "1.4.2",
1473 | "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz",
1474 | "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==",
1475 | "dev": true
1476 | },
1477 | "regenerate-unicode-properties": {
1478 | "version": "8.2.0",
1479 | "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-8.2.0.tgz",
1480 | "integrity": "sha512-F9DjY1vKLo/tPePDycuH3dn9H1OTPIkVD9Kz4LODu+F2C75mgjAJ7x/gwy6ZcSNRAAkhNlJSOHRe8k3p+K9WhA==",
1481 | "dev": true,
1482 | "requires": {
1483 | "regenerate": "^1.4.0"
1484 | }
1485 | },
1486 | "regenerator-runtime": {
1487 | "version": "0.11.1",
1488 | "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz",
1489 | "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==",
1490 | "dev": true,
1491 | "optional": true
1492 | },
1493 | "regjsgen": {
1494 | "version": "0.5.2",
1495 | "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.5.2.tgz",
1496 | "integrity": "sha512-OFFT3MfrH90xIW8OOSyUrk6QHD5E9JOTeGodiJeBS3J6IwlgzJMNE/1bZklWz5oTg+9dCMyEetclvCVXOPoN3A==",
1497 | "dev": true
1498 | },
1499 | "regjsparser": {
1500 | "version": "0.6.4",
1501 | "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.6.4.tgz",
1502 | "integrity": "sha512-64O87/dPDgfk8/RQqC4gkZoGyyWFIEUTTh80CU6CWuK5vkCGyekIx+oKcEIYtP/RAxSQltCZHCNu/mdd7fqlJw==",
1503 | "dev": true,
1504 | "requires": {
1505 | "jsesc": "~0.5.0"
1506 | },
1507 | "dependencies": {
1508 | "jsesc": {
1509 | "version": "0.5.0",
1510 | "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz",
1511 | "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=",
1512 | "dev": true
1513 | }
1514 | }
1515 | },
1516 | "repeat-string": {
1517 | "version": "1.6.1",
1518 | "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz",
1519 | "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=",
1520 | "dev": true,
1521 | "optional": true
1522 | },
1523 | "resolve": {
1524 | "version": "1.19.0",
1525 | "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.19.0.tgz",
1526 | "integrity": "sha512-rArEXAgsBG4UgRGcynxWIWKFvh/XZCcS8UJdHhwy91zwAvCZIbcs+vAbflgBnNjYMs/i/i+/Ux6IZhML1yPvxg==",
1527 | "dev": true,
1528 | "requires": {
1529 | "is-core-module": "^2.1.0",
1530 | "path-parse": "^1.0.6"
1531 | }
1532 | },
1533 | "resolve-url": {
1534 | "version": "0.2.1",
1535 | "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz",
1536 | "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=",
1537 | "dev": true,
1538 | "optional": true
1539 | },
1540 | "right-align": {
1541 | "version": "0.1.3",
1542 | "resolved": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz",
1543 | "integrity": "sha1-YTObci/mo1FWiSENJOFMlhSGE+8=",
1544 | "dev": true,
1545 | "optional": true,
1546 | "requires": {
1547 | "align-text": "^0.1.1"
1548 | }
1549 | },
1550 | "rollup": {
1551 | "version": "1.32.1",
1552 | "resolved": "https://registry.npmjs.org/rollup/-/rollup-1.32.1.tgz",
1553 | "integrity": "sha512-/2HA0Ec70TvQnXdzynFffkjA6XN+1e2pEv/uKS5Ulca40g2L7KuOE3riasHoNVHOsFD5KKZgDsMk1CP3Tw9s+A==",
1554 | "dev": true,
1555 | "requires": {
1556 | "@types/estree": "*",
1557 | "@types/node": "*",
1558 | "acorn": "^7.1.0"
1559 | },
1560 | "dependencies": {
1561 | "acorn": {
1562 | "version": "7.4.1",
1563 | "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz",
1564 | "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==",
1565 | "dev": true
1566 | }
1567 | }
1568 | },
1569 | "rollup-plugin-vue": {
1570 | "version": "5.1.9",
1571 | "resolved": "https://registry.npmjs.org/rollup-plugin-vue/-/rollup-plugin-vue-5.1.9.tgz",
1572 | "integrity": "sha512-DXzrBUD2j68Y6nls4MmuJsFL1SrQDpdgjxvhk/oy04LzJmXJoX1x31yLEBFkkmvpbon6Q885WJLvEMiMyT+3rA==",
1573 | "dev": true,
1574 | "requires": {
1575 | "@vue/component-compiler": "^4.2.3",
1576 | "@vue/component-compiler-utils": "^3.1.2",
1577 | "debug": "^4.1.1",
1578 | "hash-sum": "^1.0.2",
1579 | "magic-string": "^0.25.7",
1580 | "querystring": "^0.2.0",
1581 | "rollup-pluginutils": "^2.8.2",
1582 | "source-map": "0.7.3",
1583 | "vue-runtime-helpers": "^1.1.2"
1584 | }
1585 | },
1586 | "rollup-pluginutils": {
1587 | "version": "2.8.2",
1588 | "resolved": "https://registry.npmjs.org/rollup-pluginutils/-/rollup-pluginutils-2.8.2.tgz",
1589 | "integrity": "sha512-EEp9NhnUkwY8aif6bxgovPHMoMoNr2FulJziTndpt5H9RdwC47GSGuII9XxpSdzVGM0GWrNPHV6ie1LTNJPaLQ==",
1590 | "dev": true,
1591 | "requires": {
1592 | "estree-walker": "^0.6.1"
1593 | },
1594 | "dependencies": {
1595 | "estree-walker": {
1596 | "version": "0.6.1",
1597 | "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-0.6.1.tgz",
1598 | "integrity": "sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w==",
1599 | "dev": true
1600 | }
1601 | }
1602 | },
1603 | "safer-buffer": {
1604 | "version": "2.1.2",
1605 | "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
1606 | "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==",
1607 | "dev": true,
1608 | "optional": true
1609 | },
1610 | "sass": {
1611 | "version": "1.32.2",
1612 | "resolved": "https://registry.npmjs.org/sass/-/sass-1.32.2.tgz",
1613 | "integrity": "sha512-u1pUuzqwz3SAgvHSWp1k0mRhX82b2DdlVnP6UIetQPZtYbuJUDaPQhZE12jyjB7vYeOScfz9WPsZJB6Rpk7heA==",
1614 | "dev": true,
1615 | "optional": true,
1616 | "requires": {
1617 | "chokidar": ">=2.0.0 <4.0.0"
1618 | }
1619 | },
1620 | "sax": {
1621 | "version": "1.2.4",
1622 | "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz",
1623 | "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==",
1624 | "dev": true,
1625 | "optional": true
1626 | },
1627 | "semver": {
1628 | "version": "5.7.1",
1629 | "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
1630 | "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
1631 | "dev": true,
1632 | "optional": true
1633 | },
1634 | "source-map": {
1635 | "version": "0.7.3",
1636 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz",
1637 | "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==",
1638 | "dev": true
1639 | },
1640 | "source-map-resolve": {
1641 | "version": "0.5.3",
1642 | "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz",
1643 | "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==",
1644 | "dev": true,
1645 | "optional": true,
1646 | "requires": {
1647 | "atob": "^2.1.2",
1648 | "decode-uri-component": "^0.2.0",
1649 | "resolve-url": "^0.2.1",
1650 | "source-map-url": "^0.4.0",
1651 | "urix": "^0.1.0"
1652 | }
1653 | },
1654 | "source-map-url": {
1655 | "version": "0.4.0",
1656 | "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz",
1657 | "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=",
1658 | "dev": true,
1659 | "optional": true
1660 | },
1661 | "sourcemap-codec": {
1662 | "version": "1.4.8",
1663 | "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz",
1664 | "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==",
1665 | "dev": true
1666 | },
1667 | "string-hash": {
1668 | "version": "1.1.3",
1669 | "resolved": "https://registry.npmjs.org/string-hash/-/string-hash-1.1.3.tgz",
1670 | "integrity": "sha1-6Kr8CsGFW0Zmkp7X3RJ1311sgRs=",
1671 | "dev": true
1672 | },
1673 | "strip-ansi": {
1674 | "version": "3.0.1",
1675 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
1676 | "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
1677 | "dev": true,
1678 | "requires": {
1679 | "ansi-regex": "^2.0.0"
1680 | }
1681 | },
1682 | "stylus": {
1683 | "version": "0.54.8",
1684 | "resolved": "https://registry.npmjs.org/stylus/-/stylus-0.54.8.tgz",
1685 | "integrity": "sha512-vr54Or4BZ7pJafo2mpf0ZcwA74rpuYCZbxrHBsH8kbcXOwSfvBFwsRfpGO5OD5fhG5HDCFW737PKaawI7OqEAg==",
1686 | "dev": true,
1687 | "optional": true,
1688 | "requires": {
1689 | "css-parse": "~2.0.0",
1690 | "debug": "~3.1.0",
1691 | "glob": "^7.1.6",
1692 | "mkdirp": "~1.0.4",
1693 | "safer-buffer": "^2.1.2",
1694 | "sax": "~1.2.4",
1695 | "semver": "^6.3.0",
1696 | "source-map": "^0.7.3"
1697 | },
1698 | "dependencies": {
1699 | "debug": {
1700 | "version": "3.1.0",
1701 | "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
1702 | "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==",
1703 | "dev": true,
1704 | "optional": true,
1705 | "requires": {
1706 | "ms": "2.0.0"
1707 | }
1708 | },
1709 | "semver": {
1710 | "version": "6.3.0",
1711 | "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
1712 | "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
1713 | "dev": true,
1714 | "optional": true
1715 | }
1716 | }
1717 | },
1718 | "supports-color": {
1719 | "version": "5.5.0",
1720 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
1721 | "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
1722 | "dev": true,
1723 | "requires": {
1724 | "has-flag": "^3.0.0"
1725 | }
1726 | },
1727 | "to-fast-properties": {
1728 | "version": "1.0.3",
1729 | "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz",
1730 | "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=",
1731 | "dev": true,
1732 | "optional": true
1733 | },
1734 | "to-regex-range": {
1735 | "version": "5.0.1",
1736 | "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
1737 | "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
1738 | "dev": true,
1739 | "optional": true,
1740 | "requires": {
1741 | "is-number": "^7.0.0"
1742 | }
1743 | },
1744 | "token-stream": {
1745 | "version": "0.0.1",
1746 | "resolved": "https://registry.npmjs.org/token-stream/-/token-stream-0.0.1.tgz",
1747 | "integrity": "sha1-zu78cXp2xDFvEm0LnbqlXX598Bo=",
1748 | "dev": true,
1749 | "optional": true
1750 | },
1751 | "tslib": {
1752 | "version": "1.14.1",
1753 | "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
1754 | "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==",
1755 | "dev": true,
1756 | "optional": true
1757 | },
1758 | "uglify-js": {
1759 | "version": "2.8.29",
1760 | "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz",
1761 | "integrity": "sha1-KcVzMUgFe7Th913zW3qcty5qWd0=",
1762 | "dev": true,
1763 | "optional": true,
1764 | "requires": {
1765 | "source-map": "~0.5.1",
1766 | "uglify-to-browserify": "~1.0.0",
1767 | "yargs": "~3.10.0"
1768 | },
1769 | "dependencies": {
1770 | "source-map": {
1771 | "version": "0.5.7",
1772 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
1773 | "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
1774 | "dev": true,
1775 | "optional": true
1776 | }
1777 | }
1778 | },
1779 | "uglify-to-browserify": {
1780 | "version": "1.0.2",
1781 | "resolved": "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz",
1782 | "integrity": "sha1-bgkk1r2mta/jSeOabWMoUKD4grc=",
1783 | "dev": true,
1784 | "optional": true
1785 | },
1786 | "unicode-canonical-property-names-ecmascript": {
1787 | "version": "1.0.4",
1788 | "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz",
1789 | "integrity": "sha512-jDrNnXWHd4oHiTZnx/ZG7gtUTVp+gCcTTKr8L0HjlwphROEW3+Him+IpvC+xcJEFegapiMZyZe02CyuOnRmbnQ==",
1790 | "dev": true
1791 | },
1792 | "unicode-match-property-ecmascript": {
1793 | "version": "1.0.4",
1794 | "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz",
1795 | "integrity": "sha512-L4Qoh15vTfntsn4P1zqnHulG0LdXgjSO035fEpdtp6YxXhMT51Q6vgM5lYdG/5X3MjS+k/Y9Xw4SFCY9IkR0rg==",
1796 | "dev": true,
1797 | "requires": {
1798 | "unicode-canonical-property-names-ecmascript": "^1.0.4",
1799 | "unicode-property-aliases-ecmascript": "^1.0.4"
1800 | }
1801 | },
1802 | "unicode-match-property-value-ecmascript": {
1803 | "version": "1.2.0",
1804 | "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.2.0.tgz",
1805 | "integrity": "sha512-wjuQHGQVofmSJv1uVISKLE5zO2rNGzM/KCYZch/QQvez7C1hUhBIuZ701fYXExuufJFMPhv2SyL8CyoIfMLbIQ==",
1806 | "dev": true
1807 | },
1808 | "unicode-property-aliases-ecmascript": {
1809 | "version": "1.1.0",
1810 | "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.1.0.tgz",
1811 | "integrity": "sha512-PqSoPh/pWetQ2phoj5RLiaqIk4kCNwoV3CI+LfGmWLKI3rE3kl1h59XpX2BjgDrmbxD9ARtQobPGU1SguCYuQg==",
1812 | "dev": true
1813 | },
1814 | "uniq": {
1815 | "version": "1.0.1",
1816 | "resolved": "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz",
1817 | "integrity": "sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8=",
1818 | "dev": true
1819 | },
1820 | "urix": {
1821 | "version": "0.1.0",
1822 | "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz",
1823 | "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=",
1824 | "dev": true,
1825 | "optional": true
1826 | },
1827 | "util-deprecate": {
1828 | "version": "1.0.2",
1829 | "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
1830 | "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=",
1831 | "dev": true
1832 | },
1833 | "void-elements": {
1834 | "version": "2.0.1",
1835 | "resolved": "https://registry.npmjs.org/void-elements/-/void-elements-2.0.1.tgz",
1836 | "integrity": "sha1-wGavtYK7HLQSjWDqkjkulNXp2+w=",
1837 | "dev": true,
1838 | "optional": true
1839 | },
1840 | "vue": {
1841 | "version": "2.6.12",
1842 | "resolved": "https://registry.npmjs.org/vue/-/vue-2.6.12.tgz",
1843 | "integrity": "sha512-uhmLFETqPPNyuLLbsKz6ioJ4q7AZHzD8ZVFNATNyICSZouqP2Sz0rotWQC8UNBF6VGSCs5abnKJoStA6JbCbfg==",
1844 | "dev": true
1845 | },
1846 | "vue-runtime-helpers": {
1847 | "version": "1.1.2",
1848 | "resolved": "https://registry.npmjs.org/vue-runtime-helpers/-/vue-runtime-helpers-1.1.2.tgz",
1849 | "integrity": "sha512-pZfGp+PW/IXEOyETE09xQHR1CKkR9HfHZdnMD/FVLUNI+HxYTa82evx5WrF6Kz4s82qtqHvMZ8MZpbk2zT2E1Q==",
1850 | "dev": true
1851 | },
1852 | "vue-template-compiler": {
1853 | "version": "2.6.12",
1854 | "resolved": "https://registry.npmjs.org/vue-template-compiler/-/vue-template-compiler-2.6.12.tgz",
1855 | "integrity": "sha512-OzzZ52zS41YUbkCBfdXShQTe69j1gQDZ9HIX8miuC9C3rBCk9wIRjLiZZLrmX9V+Ftq/YEyv1JaVr5Y/hNtByg==",
1856 | "dev": true,
1857 | "requires": {
1858 | "de-indent": "^1.0.2",
1859 | "he": "^1.1.0"
1860 | }
1861 | },
1862 | "vue-template-es2015-compiler": {
1863 | "version": "1.9.1",
1864 | "resolved": "https://registry.npmjs.org/vue-template-es2015-compiler/-/vue-template-es2015-compiler-1.9.1.tgz",
1865 | "integrity": "sha512-4gDntzrifFnCEvyoO8PqyJDmguXgVPxKiIxrBKjIowvL9l+N66196+72XVYR8BBf1Uv1Fgt3bGevJ+sEmxfZzw==",
1866 | "dev": true
1867 | },
1868 | "window-size": {
1869 | "version": "0.1.0",
1870 | "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz",
1871 | "integrity": "sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0=",
1872 | "dev": true,
1873 | "optional": true
1874 | },
1875 | "with": {
1876 | "version": "5.1.1",
1877 | "resolved": "https://registry.npmjs.org/with/-/with-5.1.1.tgz",
1878 | "integrity": "sha1-+k2qktrzLE6pTtRTyB8EaGtXXf4=",
1879 | "dev": true,
1880 | "optional": true,
1881 | "requires": {
1882 | "acorn": "^3.1.0",
1883 | "acorn-globals": "^3.0.0"
1884 | },
1885 | "dependencies": {
1886 | "acorn": {
1887 | "version": "3.3.0",
1888 | "resolved": "https://registry.npmjs.org/acorn/-/acorn-3.3.0.tgz",
1889 | "integrity": "sha1-ReN/s56No/JbruP/U2niu18iAXo=",
1890 | "dev": true,
1891 | "optional": true
1892 | }
1893 | }
1894 | },
1895 | "wordwrap": {
1896 | "version": "0.0.2",
1897 | "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz",
1898 | "integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8=",
1899 | "dev": true,
1900 | "optional": true
1901 | },
1902 | "wrappy": {
1903 | "version": "1.0.2",
1904 | "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
1905 | "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=",
1906 | "dev": true
1907 | },
1908 | "yallist": {
1909 | "version": "2.1.2",
1910 | "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz",
1911 | "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=",
1912 | "dev": true
1913 | },
1914 | "yargs": {
1915 | "version": "3.10.0",
1916 | "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz",
1917 | "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=",
1918 | "dev": true,
1919 | "optional": true,
1920 | "requires": {
1921 | "camelcase": "^1.0.2",
1922 | "cliui": "^2.1.0",
1923 | "decamelize": "^1.0.0",
1924 | "window-size": "0.1.0"
1925 | }
1926 | }
1927 | }
1928 | }
1929 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "tinymotion",
3 | "version": "0.2.0",
4 | "license": "MIT",
5 | "main": "dist/tinymotion.umd.js",
6 | "module": "dist/tinymotion.esm.js",
7 | "unpkg": "dist/tinymotion.min.js",
8 | "browser": {
9 | "./sfc": "src/Motion.vue"
10 | },
11 | "repository": {
12 | "type": "git",
13 | "url": "git+https://github.com/lepikhinb/tinymotion.git"
14 | },
15 | "files": [
16 | "dist"
17 | ],
18 | "tags": [
19 | "vue",
20 | "animation",
21 | "tailwind",
22 | "tailwindcss",
23 | "motion",
24 | "framer"
25 | ],
26 | "engines": {
27 | "node": ">=10"
28 | },
29 | "scripts": {
30 | "build": "npm run build:umd & npm run build:es & npm run build:unpkg",
31 | "build:umd": "rollup --config build/rollup.config.js --format umd --file dist/tinymotion.umd.js",
32 | "build:es": "rollup --config build/rollup.config.js --format es --file dist/tinymotion.esm.js",
33 | "build:unpkg": "rollup --config build/rollup.config.js --format iife --file dist/tinymotion.min.js"
34 | },
35 | "devDependencies": {
36 | "rollup": "^1.17.0",
37 | "@rollup/plugin-buble": "^0.21.3",
38 | "@rollup/plugin-commonjs": "^11.1.0",
39 | "rollup-plugin-vue": "^5.0.1",
40 | "vue": "^2.6.10",
41 | "vue-template-compiler": "^2.6.10"
42 | }
43 | }
--------------------------------------------------------------------------------
/src/Motion.vue:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/animator.js:
--------------------------------------------------------------------------------
1 | const SINGLE_WORD_PROPERTIES = [
2 | 'bg',
3 | 'text',
4 | 'border',
5 | 'ring',
6 | ];
7 |
8 | class Animator {
9 | constructor(el, options, trigger, action) {
10 | this.el = el;
11 | this.options = options;
12 | this.action = action;
13 | this.trigger = trigger;
14 | this.index = 0;
15 | this.timeline = [];
16 | this.runTimer = {};
17 | this.rollbackTimer = {};
18 | this.durations = [];
19 | }
20 |
21 | setup() {
22 | this.registerListeners();
23 | this.buildTimeline();
24 |
25 | this.timeline[0].forEach(className => {
26 | this.el.classList.add(className);
27 | });
28 | }
29 |
30 | registerListeners() {
31 | if (this.action === 'hover') {
32 | this.el.addEventListener('mouseenter', () => this.start(true))
33 |
34 | if (this.options.rollback) {
35 | this.el.addEventListener('mouseleave', () => this.stop(true))
36 | }
37 | }
38 |
39 | else if (this.action === 'click') {
40 | this.el.addEventListener('mousedown', () => this.start(true))
41 | this.el.addEventListener('touchstart', () => this.start(true))
42 |
43 | if (this.options.rollback) {
44 | this.el.addEventListener('mouseup', () => this.stop(true))
45 | this.el.addEventListener('touchend', () => this.stop(true))
46 | }
47 | }
48 |
49 | else if (this.action === 'auto') {
50 | this.start(true);
51 | }
52 | }
53 |
54 | destroyListeners() {
55 | this.el.removeEventListener('mouseenter', this.start)
56 | this.el.removeEventListener('mouseleave', this.stop)
57 | this.el.removeEventListener('mousedown', this.start)
58 | this.el.removeEventListener('mouseup', this.stop)
59 | this.el.removeEventListener('touchstart', this.start)
60 | this.el.removeEventListener('touchend', this.stop)
61 | }
62 |
63 | parseProperty(property) {
64 | let propertyParts = property.split("-");
65 | let propertyNameParts = [];
66 | let value;
67 |
68 | // bg-green-500 is a "single-word" property, while translate-x-3 is not
69 | if (SINGLE_WORD_PROPERTIES.includes(propertyParts[0]) && propertyParts.length == 3) {
70 | propertyNameParts = propertyParts.splice(
71 | 0,
72 | 1
73 | );
74 |
75 | value = propertyParts.join('-');
76 | }
77 |
78 | // property without a value part (rounded, shadow, border)
79 | else if (propertyParts.length == 1) {
80 | propertyNameParts = propertyParts;
81 |
82 | value = null;
83 | }
84 |
85 | // other properties (w-16, shadow-lg)
86 | else {
87 | propertyNameParts = propertyParts.splice(
88 | 0,
89 | propertyParts.length - 1
90 | );
91 |
92 | value = propertyParts[propertyParts.length - 1];
93 | }
94 |
95 | let propertyName = propertyNameParts.join("-");
96 |
97 | // -translate-x-3 converts to a property translate-x with the value of -3
98 | if (propertyNameParts[0] == "") {
99 | propertyName = propertyNameParts
100 | .splice(1)
101 | .join("-");
102 | value = -value;
103 | }
104 |
105 | return [propertyName, value];
106 | }
107 |
108 | getUsedProperties(keyframes) {
109 | return keyframes.map((keyframe) => {
110 | return keyframe.split(" ").map((property) => {
111 | let [propertyName] = this.parseProperty(property);
112 |
113 | return propertyName;
114 | });
115 | })
116 | .flat(1)
117 | .filter((v, i, a) => a.indexOf(v) === i);
118 | }
119 |
120 | buildTimeline() {
121 | let properties = this.getUsedProperties(this.options[this.action]);
122 | let timeline = [];
123 |
124 | // build a list of properties with values
125 | this.options[this.action].forEach((keyframe, index) => {
126 | let classList = {};
127 |
128 | keyframe = keyframe.split(" ").map((property) => {
129 | let [propertyName, value] = this.parseProperty(property);
130 | let result = {};
131 |
132 | result[propertyName] = value;
133 | return result;
134 | });
135 |
136 | keyframe = Object.assign({}, ...keyframe);
137 |
138 | properties.forEach((propertyName) => {
139 | if (keyframe[propertyName] !== undefined) {
140 | classList[propertyName] = keyframe[propertyName];
141 | } else if (index != 0 && propertyName != 'duration') {
142 | classList[propertyName] = timeline[index - 1][propertyName];
143 | } else {
144 | classList[propertyName] = null;
145 | }
146 | });
147 |
148 | if (!classList.duration) {
149 | classList.duration = this.options.duration;
150 | }
151 |
152 | timeline.push(classList);
153 | });
154 |
155 | // build a sequence of css classes
156 | timeline.forEach((timeframe) => {
157 | let classList = Object.entries(timeframe)
158 | .map(([propertyName, value]) => {
159 | if (value == null) {
160 | return propertyName;
161 | }
162 | else if (parseInt(value) === value && value < 0) {
163 | return `-${propertyName}-${Math.abs(value)}`;
164 | } else {
165 | return `${propertyName}-${value}`;
166 | }
167 | });
168 |
169 | if (timeframe.duration) {
170 | this.durations.push(timeframe.duration);
171 | }
172 | else {
173 | this.durations.push(this.options.duration);
174 | }
175 |
176 | this.timeline.push(classList);
177 | });
178 | }
179 |
180 | start(firstInteraction = false) {
181 | if (this.rollbackTimer) {
182 | clearTimeout(this.rollbackTimer);
183 | }
184 |
185 | let duration = firstInteraction ? 0 : this.durations[this.index];
186 |
187 | if (this.index == 0 && !firstInteraction && this.options.factor) {
188 | duration = this.options.duration * (this.options.factor - 1);
189 | }
190 |
191 | if (firstInteraction) {
192 | duration += this.options.skip * this.durations[this.index];
193 | duration += this.options.delay;
194 | }
195 |
196 | if (!firstInteraction && this.options.stepDelay) {
197 | duration += this.options.stepDelay;
198 | }
199 |
200 | this.runTimer = setTimeout(() => this.run(), duration);
201 | }
202 |
203 | run() {
204 | if (this.index == this.timeline.length - 1 && !this.options.repeat) {
205 | return;
206 | }
207 |
208 | this.timeline[this.index].forEach(className => {
209 | this.el.classList.remove(className);
210 | });
211 |
212 | if (this.index == this.timeline.length - 1 && this.options.repeat) {
213 | this.index = 0;
214 | }
215 | else {
216 | this.index++;
217 | }
218 |
219 | this.timeline[this.index].forEach(className => {
220 | this.el.classList.add(className);
221 | });
222 |
223 | this.start();
224 | }
225 |
226 | forceRollback() {
227 | return new Promise((resolve) => {
228 | while (this.index > 0) {
229 | this.timeline[this.index].forEach(className => {
230 | this.el.classList.remove(className);
231 | });
232 |
233 | this.index--;
234 | }
235 |
236 | this.timeline[0].forEach(className => {
237 | this.el.classList.add(className);
238 | });
239 |
240 | resolve();
241 | });
242 | }
243 |
244 | stop(firstInteraction = false) {
245 | if (this.runTimer) {
246 | clearTimeout(this.runTimer);
247 | }
248 |
249 | if (!this.options.rollback) {
250 | return;
251 | }
252 |
253 | if (this.options.instantRollback) {
254 | return this.forceRollback();
255 | }
256 |
257 | let duration = firstInteraction ? 0 : this.durations[this.index];
258 |
259 | if (firstInteraction) {
260 | duration += this.options.skip * this.durations[this.index];
261 | duration += this.options.delay;
262 | }
263 |
264 | if (!firstInteraction && this.options.stepDelay) {
265 | duration += this.options.stepDelay;
266 | }
267 |
268 | this.rollbackTimer = setTimeout(() => this.rollback(), duration);
269 | }
270 |
271 | rollback() {
272 | if (this.index == 0) {
273 | return;
274 | }
275 |
276 | this.timeline[this.index].forEach(className => {
277 | this.el.classList.remove(className);
278 | });
279 |
280 | this.index--;
281 |
282 | this.timeline[this.index].forEach(className => {
283 | this.el.classList.add(className);
284 | });
285 |
286 | this.stop();
287 | }
288 | }
289 |
290 | export { Animator as default };
--------------------------------------------------------------------------------
/src/index.js:
--------------------------------------------------------------------------------
1 | import component from './Motion.vue';
2 | import Animator from './animator';
3 |
4 | export function install(Vue) {
5 | if (install.installed) return;
6 | install.installed = true;
7 | Vue.component('Motion', component);
8 | }
9 |
10 | const plugin = {
11 | install
12 | };
13 |
14 | let GlobalVue = null;
15 | if (typeof window !== 'undefined') {
16 | GlobalVue = window.Vue;
17 | } else if (typeof global !== 'undefined') {
18 | GlobalVue = global.Vue;
19 | }
20 | if (GlobalVue) {
21 | GlobalVue.use(plugin);
22 | }
23 |
24 | export default component;
25 | export { Animator };
--------------------------------------------------------------------------------