expressa 2.0.15 → 2.0.17

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (282) hide show
  1. package/.circleci/config.yml +21 -21
  2. package/.eslintrc.json +29 -29
  3. package/LICENSE +21 -21
  4. package/README.md +137 -137
  5. package/auth/index.js +76 -76
  6. package/auth/jwt.js +31 -31
  7. package/controllers/collections.js +258 -258
  8. package/controllers/install.js +105 -105
  9. package/controllers/status.js +43 -43
  10. package/controllers/users.js +52 -52
  11. package/cypress/fixtures/example.json +4 -4
  12. package/cypress/integration/0_install_spec.js +8 -8
  13. package/cypress/integration/custom_collections.js +28 -28
  14. package/cypress/integration/home.js +9 -9
  15. package/cypress/integration/settings.js +34 -34
  16. package/cypress/integration/users.js +61 -61
  17. package/cypress/plugins/index.js +17 -17
  18. package/cypress/screenshots/users.js/User Management -- Can log in as non-admin, but cannot create users (failed).png +0 -0
  19. package/cypress/support/commands.js +54 -54
  20. package/cypress/support/index.js +20 -20
  21. package/cypress/support/util.js +10 -10
  22. package/cypress.json +4 -4
  23. package/db/cached.js +40 -40
  24. package/db/file.js +112 -112
  25. package/db/memory.js +79 -79
  26. package/db/mongo.js +86 -86
  27. package/db/postgres.js +93 -93
  28. package/doc/authentication.md +38 -38
  29. package/doc/automatic-fields.md +12 -12
  30. package/doc/blogexample.md +16 -16
  31. package/doc/custom-endpoints.md +20 -20
  32. package/doc/database.md +23 -23
  33. package/doc/development.md +33 -33
  34. package/doc/listeners.md +103 -103
  35. package/doc/modules.md +8 -8
  36. package/doc/permissions.md +14 -14
  37. package/doc/relationships.md +65 -65
  38. package/doc/testing.md +47 -47
  39. package/doc/uploading-files.md +53 -53
  40. package/index.js +297 -297
  41. package/listeners.js +65 -65
  42. package/listeners_collection_permissions.js +29 -29
  43. package/listeners_users.js +96 -96
  44. package/listeners_validation.js +43 -43
  45. package/middleware/logging.js +30 -30
  46. package/middleware/permissions.js +41 -41
  47. package/modules/access_keys/access_keys.js +32 -32
  48. package/modules/admin/.babelrc +20 -12
  49. package/modules/admin/.editorconfig +14 -14
  50. package/modules/admin/.eslintignore +5 -5
  51. package/modules/admin/.eslintrc.js +197 -197
  52. package/modules/admin/.postcssrc.js +10 -10
  53. package/modules/admin/.travis.yml +5 -5
  54. package/modules/admin/LICENSE +21 -21
  55. package/modules/admin/README.md +88 -88
  56. package/modules/admin/build/build.js +45 -45
  57. package/modules/admin/build/check-versions.js +64 -64
  58. package/modules/admin/build/utils.js +108 -108
  59. package/modules/admin/build/vue-loader.conf.js +5 -5
  60. package/modules/admin/build/webpack.base.conf.js +112 -108
  61. package/modules/admin/build/webpack.dev.conf.js +95 -95
  62. package/modules/admin/build/webpack.prod.conf.js +112 -171
  63. package/modules/admin/config/dev.env.js +8 -8
  64. package/modules/admin/config/index.js +86 -86
  65. package/modules/admin/config/prod.env.js +5 -5
  66. package/modules/admin/dist/164c6167c1f3c497c07c.woff +1 -0
  67. package/modules/admin/dist/42ac07abc8473600c41f.ttf +1 -0
  68. package/modules/admin/dist/86dccb18a7eb4be8ef1a.woff +1 -0
  69. package/modules/admin/dist/c45297c558e0318fc9c5.ttf +1 -0
  70. package/modules/admin/dist/c717c9930715e24fa12c.woff +1 -0
  71. package/modules/admin/dist/ca6f07ef23f24cc2738a.ttf +1 -0
  72. package/modules/admin/dist/css/269.f7d5c7d5.css +37 -0
  73. package/modules/admin/dist/css/269.f7d5c7d5.css.gz +0 -0
  74. package/modules/admin/dist/css/451.c6646d20.css +1 -0
  75. package/modules/admin/dist/css/451.c6646d20.css.gz +0 -0
  76. package/modules/admin/dist/css/572.74d8e965.css +34 -0
  77. package/modules/admin/dist/css/572.74d8e965.css.gz +0 -0
  78. package/modules/admin/dist/css/651.e946bda7.css +6 -0
  79. package/modules/admin/dist/css/651.e946bda7.css.gz +0 -0
  80. package/modules/admin/dist/css/699.d1f90954.css +8 -0
  81. package/modules/admin/dist/css/699.d1f90954.css.gz +0 -0
  82. package/modules/admin/dist/css/750.4086915d.css +2 -0
  83. package/modules/admin/dist/css/750.4086915d.css.gz +0 -0
  84. package/modules/admin/dist/css/864.506917a4.css +7 -0
  85. package/modules/admin/dist/css/864.506917a4.css.gz +0 -0
  86. package/modules/admin/dist/css/899.506917a4.css +7 -0
  87. package/modules/admin/dist/css/899.506917a4.css.gz +0 -0
  88. package/modules/admin/dist/css/950.1fd9d57c.css +7 -0
  89. package/modules/admin/dist/css/950.1fd9d57c.css.gz +0 -0
  90. package/modules/admin/dist/css/app.11cc6245.css +39 -0
  91. package/modules/admin/dist/css/app.11cc6245.css.gz +0 -0
  92. package/modules/admin/dist/css/app.2e1b0d79.css +591 -0
  93. package/modules/admin/dist/css/app.2e1b0d79.css.gz +0 -0
  94. package/modules/admin/dist/css/app.4d43d0fd.css +592 -0
  95. package/modules/admin/dist/css/app.4d43d0fd.css.gz +0 -0
  96. package/modules/admin/dist/css/app.abace109.css +1 -0
  97. package/modules/admin/dist/css/app.abace109.css.gz +0 -0
  98. package/modules/admin/dist/css/chunk-elementUI.67ad86d7.css +1 -0
  99. package/modules/admin/dist/css/chunk-elementUI.67ad86d7.css.gz +0 -0
  100. package/modules/admin/dist/css/chunk-elementUI.9e660bfd.css +1 -0
  101. package/modules/admin/dist/css/chunk-elementUI.9e660bfd.css.gz +0 -0
  102. package/modules/admin/dist/css/chunk-elementUI.c77cf142.css +1 -0
  103. package/modules/admin/dist/css/chunk-elementUI.c77cf142.css.gz +0 -0
  104. package/modules/admin/dist/css/chunk-elementUI.f1625b35.css +1 -0
  105. package/modules/admin/dist/css/chunk-elementUI.f1625b35.css.gz +0 -0
  106. package/modules/admin/dist/css/chunk-elementUI.f25dfb9b.css +1 -0
  107. package/modules/admin/dist/css/chunk-elementUI.f25dfb9b.css.gz +0 -0
  108. package/modules/admin/dist/css/chunk-libs.de0d8484.css +551 -0
  109. package/modules/admin/dist/css/chunk-libs.de0d8484.css.gz +0 -0
  110. package/modules/admin/dist/index.html +1 -1
  111. package/modules/admin/dist/static/fonts/element-icons.313f7da.woff +0 -0
  112. package/modules/admin/dist/static/fonts/element-icons.4520188.ttf +0 -0
  113. package/modules/admin/dist/static/js/269.7245ceaf.js +1 -0
  114. package/modules/admin/dist/static/js/269.7245ceaf.js.gz +0 -0
  115. package/modules/admin/dist/static/js/451.645974a8.js +1 -0
  116. package/modules/admin/dist/static/js/451.645974a8.js.gz +0 -0
  117. package/modules/admin/dist/static/js/460.962d5bc0.js +1 -0
  118. package/modules/admin/dist/static/js/460.962d5bc0.js.gz +0 -0
  119. package/modules/admin/dist/static/js/556.1e08866a.js +1 -0
  120. package/modules/admin/dist/static/js/556.1e08866a.js.gz +0 -0
  121. package/modules/admin/dist/static/js/572.13392e1d.js +1 -0
  122. package/modules/admin/dist/static/js/572.13392e1d.js.gz +0 -0
  123. package/modules/admin/dist/static/js/603.7b34a650.js +1 -0
  124. package/modules/admin/dist/static/js/603.7b34a650.js.gz +0 -0
  125. package/modules/admin/dist/static/js/637.26413baa.js +1 -0
  126. package/modules/admin/dist/static/js/637.26413baa.js.gz +0 -0
  127. package/modules/admin/dist/static/js/651.564b24b6.js +1 -0
  128. package/modules/admin/dist/static/js/651.564b24b6.js.gz +0 -0
  129. package/modules/admin/dist/static/js/653.02ec1098.js +1 -0
  130. package/modules/admin/dist/static/js/653.02ec1098.js.gz +0 -0
  131. package/modules/admin/dist/static/js/699.c7564884.js +1 -0
  132. package/modules/admin/dist/static/js/699.c7564884.js.gz +0 -0
  133. package/modules/admin/dist/static/js/750.50c950da.js +1 -0
  134. package/modules/admin/dist/static/js/750.50c950da.js.gz +0 -0
  135. package/modules/admin/dist/static/js/864.4f43847d.js +1 -0
  136. package/modules/admin/dist/static/js/864.4f43847d.js.gz +0 -0
  137. package/modules/admin/dist/static/js/950.d4ff0a18.js +1 -0
  138. package/modules/admin/dist/static/js/950.d4ff0a18.js.gz +0 -0
  139. package/modules/admin/dist/static/js/app.981e71b3.js +2 -0
  140. package/modules/admin/dist/static/js/{chunk-libs.06c38828.js.LICENSE.txt → app.981e71b3.js.LICENSE.txt} +15 -18
  141. package/modules/admin/dist/static/js/app.981e71b3.js.LICENSE.txt.gz +0 -0
  142. package/modules/admin/dist/static/js/app.981e71b3.js.gz +0 -0
  143. package/modules/admin/index.html +16 -16
  144. package/modules/admin/package.json +101 -98
  145. package/modules/admin/src/App.vue +11 -11
  146. package/modules/admin/src/api/login.js +26 -26
  147. package/modules/admin/src/api/table.js +9 -9
  148. package/modules/admin/src/components/Breadcrumb/index.vue +79 -79
  149. package/modules/admin/src/components/Hamburger/index.vue +62 -62
  150. package/modules/admin/src/components/JSONEditor.vue +180 -180
  151. package/modules/admin/src/components/SvgIcon/index.vue +43 -43
  152. package/modules/admin/src/icons/index.js +9 -9
  153. package/modules/admin/src/icons/svgo.yml +22 -22
  154. package/modules/admin/src/main.js +1 -0
  155. package/modules/admin/src/permission.js +49 -49
  156. package/modules/admin/src/router/index.js +200 -200
  157. package/modules/admin/src/store/getters.js +11 -11
  158. package/modules/admin/src/store/index.js +17 -17
  159. package/modules/admin/src/store/modules/app.js +43 -43
  160. package/modules/admin/src/store/modules/user.js +104 -104
  161. package/modules/admin/src/styles/element-ui.scss +29 -29
  162. package/modules/admin/src/styles/index.scss +78 -78
  163. package/modules/admin/src/styles/mixin.scss +27 -27
  164. package/modules/admin/src/styles/sidebar.scss +133 -133
  165. package/modules/admin/src/styles/transition.scss +46 -46
  166. package/modules/admin/src/styles/variables.scss +4 -4
  167. package/modules/admin/src/utils/auth.js +15 -15
  168. package/modules/admin/src/utils/index.js +74 -74
  169. package/modules/admin/src/utils/request.js +48 -48
  170. package/modules/admin/src/utils/validate.js +31 -31
  171. package/modules/admin/src/views/404.vue +235 -235
  172. package/modules/admin/src/views/Dev.vue +33 -33
  173. package/modules/admin/src/views/EditDocument.vue +116 -116
  174. package/modules/admin/src/views/Endpoints.vue +279 -279
  175. package/modules/admin/src/views/Home.vue +84 -84
  176. package/modules/admin/src/views/Install.vue +79 -79
  177. package/modules/admin/src/views/ListDocuments.vue +72 -72
  178. package/modules/admin/src/views/ListDocuments2.vue +462 -462
  179. package/modules/admin/src/views/ManageListeners.vue +67 -67
  180. package/modules/admin/src/views/ManageMiddleware.vue +43 -43
  181. package/modules/admin/src/views/ManagePermissions.vue +75 -75
  182. package/modules/admin/src/views/ViewRequest.vue +77 -77
  183. package/modules/admin/src/views/form/index.vue +91 -91
  184. package/modules/admin/src/views/layout/Layout.vue +69 -69
  185. package/modules/admin/src/views/layout/components/AppMain.vue +41 -41
  186. package/modules/admin/src/views/layout/components/Navbar.vue +97 -97
  187. package/modules/admin/src/views/layout/components/Sidebar/Item.vue +29 -29
  188. package/modules/admin/src/views/layout/components/Sidebar/Link.vue +39 -39
  189. package/modules/admin/src/views/layout/components/Sidebar/SidebarItem.vue +103 -103
  190. package/modules/admin/src/views/layout/components/Sidebar/index.vue +62 -62
  191. package/modules/admin/src/views/layout/components/index.js +3 -3
  192. package/modules/admin/src/views/layout/mixin/ResizeHandler.js +41 -41
  193. package/modules/admin/src/views/login/index.vue +195 -195
  194. package/modules/admin/src/views/tree/index.vue +77 -77
  195. package/modules/collections/collections.js +39 -39
  196. package/modules/core/core.js +197 -197
  197. package/modules/logging/logging.js +88 -88
  198. package/modules/permissions/permissions.js +106 -106
  199. package/package.json +59 -59
  200. package/scripts/expressa +12 -12
  201. package/scripts/run_cypress_tests.sh +5 -5
  202. package/scripts/run_db_tests.sh +8 -8
  203. package/test/0-install.js +96 -96
  204. package/test/collections.js +431 -423
  205. package/test/collections.querying.js +288 -269
  206. package/test/db.js +258 -250
  207. package/test/db.strings.js +73 -73
  208. package/test/db.updating.js +144 -144
  209. package/test/logging.js +29 -29
  210. package/test/test.js +93 -94
  211. package/test/testserver.js +17 -17
  212. package/test/testutils.js +136 -136
  213. package/test/users.js +425 -425
  214. package/util.js +522 -521
  215. package/modules/admin/dist/index.html.gz +0 -0
  216. package/modules/admin/dist/static/css/app.9dd57eea.css +0 -1
  217. package/modules/admin/dist/static/css/app.9dd57eea.css.gz +0 -0
  218. package/modules/admin/dist/static/css/chunk-5061.ce0e4bdb.css +0 -1
  219. package/modules/admin/dist/static/css/chunk-5061.ce0e4bdb.css.gz +0 -0
  220. package/modules/admin/dist/static/css/chunk-5b97.7f9cb53e.css +0 -1
  221. package/modules/admin/dist/static/css/chunk-5b97.7f9cb53e.css.gz +0 -0
  222. package/modules/admin/dist/static/css/chunk-621e.b826be8d.css +0 -1
  223. package/modules/admin/dist/static/css/chunk-621e.b826be8d.css.gz +0 -0
  224. package/modules/admin/dist/static/css/chunk-656b.9c828b00.css +0 -1
  225. package/modules/admin/dist/static/css/chunk-656b.9c828b00.css.gz +0 -0
  226. package/modules/admin/dist/static/css/chunk-7291.13514e45.css +0 -0
  227. package/modules/admin/dist/static/css/chunk-7291.13514e45.css.gz +0 -0
  228. package/modules/admin/dist/static/css/chunk-7f29.9c828b00.css +0 -1
  229. package/modules/admin/dist/static/css/chunk-7f29.9c828b00.css.gz +0 -0
  230. package/modules/admin/dist/static/css/chunk-9a95.c647a2ef.css +0 -1
  231. package/modules/admin/dist/static/css/chunk-9a95.c647a2ef.css.gz +0 -0
  232. package/modules/admin/dist/static/css/chunk-b423.5f239333.css +0 -0
  233. package/modules/admin/dist/static/css/chunk-b423.5f239333.css.gz +0 -0
  234. package/modules/admin/dist/static/css/chunk-bd5f.aefa49d7.css +0 -1
  235. package/modules/admin/dist/static/css/chunk-bd5f.aefa49d7.css.gz +0 -0
  236. package/modules/admin/dist/static/css/chunk-e374.025d58bb.css +0 -1
  237. package/modules/admin/dist/static/css/chunk-e374.025d58bb.css.gz +0 -0
  238. package/modules/admin/dist/static/css/chunk-elementUI.3d004d9f.css +0 -1
  239. package/modules/admin/dist/static/css/chunk-elementUI.3d004d9f.css.gz +0 -0
  240. package/modules/admin/dist/static/css/chunk-f075.3a895a1e.css +0 -1
  241. package/modules/admin/dist/static/css/chunk-f075.3a895a1e.css.gz +0 -0
  242. package/modules/admin/dist/static/css/chunk-libs.327ad89e.css +0 -14
  243. package/modules/admin/dist/static/css/chunk-libs.327ad89e.css.gz +0 -0
  244. package/modules/admin/dist/static/fonts/element-icons.6f0a763.ttf +0 -0
  245. package/modules/admin/dist/static/js/app.e9461593.js +0 -1
  246. package/modules/admin/dist/static/js/app.e9461593.js.gz +0 -0
  247. package/modules/admin/dist/static/js/chunk-09d8.561880e0.js +0 -2
  248. package/modules/admin/dist/static/js/chunk-09d8.561880e0.js.LICENSE.txt +0 -13
  249. package/modules/admin/dist/static/js/chunk-09d8.561880e0.js.LICENSE.txt.gz +0 -0
  250. package/modules/admin/dist/static/js/chunk-09d8.561880e0.js.gz +0 -0
  251. package/modules/admin/dist/static/js/chunk-5061.83e6ccfa.js +0 -1
  252. package/modules/admin/dist/static/js/chunk-5061.83e6ccfa.js.gz +0 -0
  253. package/modules/admin/dist/static/js/chunk-5b97.ac360086.js +0 -1
  254. package/modules/admin/dist/static/js/chunk-5b97.ac360086.js.gz +0 -0
  255. package/modules/admin/dist/static/js/chunk-5e17.a2b69611.js +0 -1
  256. package/modules/admin/dist/static/js/chunk-5e17.a2b69611.js.gz +0 -0
  257. package/modules/admin/dist/static/js/chunk-621e.ccf42393.js +0 -1
  258. package/modules/admin/dist/static/js/chunk-621e.ccf42393.js.gz +0 -0
  259. package/modules/admin/dist/static/js/chunk-656b.9d5b03c0.js +0 -1
  260. package/modules/admin/dist/static/js/chunk-656b.9d5b03c0.js.gz +0 -0
  261. package/modules/admin/dist/static/js/chunk-7291.590524e9.js +0 -1
  262. package/modules/admin/dist/static/js/chunk-7291.590524e9.js.gz +0 -0
  263. package/modules/admin/dist/static/js/chunk-7f29.6ffc142e.js +0 -1
  264. package/modules/admin/dist/static/js/chunk-7f29.6ffc142e.js.gz +0 -0
  265. package/modules/admin/dist/static/js/chunk-9a95.bdd76583.js +0 -1
  266. package/modules/admin/dist/static/js/chunk-9a95.bdd76583.js.gz +0 -0
  267. package/modules/admin/dist/static/js/chunk-b423.387c504c.js +0 -1
  268. package/modules/admin/dist/static/js/chunk-b423.387c504c.js.gz +0 -0
  269. package/modules/admin/dist/static/js/chunk-bd5f.e9509f10.js +0 -1
  270. package/modules/admin/dist/static/js/chunk-bd5f.e9509f10.js.gz +0 -0
  271. package/modules/admin/dist/static/js/chunk-e374.7c87a0dd.js +0 -1
  272. package/modules/admin/dist/static/js/chunk-e374.7c87a0dd.js.gz +0 -0
  273. package/modules/admin/dist/static/js/chunk-e7c3.e5df8ceb.js +0 -1
  274. package/modules/admin/dist/static/js/chunk-e7c3.e5df8ceb.js.gz +0 -0
  275. package/modules/admin/dist/static/js/chunk-elementUI.b0c99c08.js +0 -1
  276. package/modules/admin/dist/static/js/chunk-elementUI.b0c99c08.js.gz +0 -0
  277. package/modules/admin/dist/static/js/chunk-f075.315ceec1.js +0 -1
  278. package/modules/admin/dist/static/js/chunk-f075.315ceec1.js.gz +0 -0
  279. package/modules/admin/dist/static/js/chunk-libs.06c38828.js +0 -2
  280. package/modules/admin/dist/static/js/chunk-libs.06c38828.js.LICENSE.txt.gz +0 -0
  281. package/modules/admin/dist/static/js/chunk-libs.06c38828.js.gz +0 -0
  282. /package/modules/admin/dist/static/img/{404.a57b6f3.png → 404.4cf6930.png} +0 -0
@@ -1,171 +1,112 @@
1
- 'use strict'
2
- const path = require('path')
3
- const utils = require('./utils')
4
- const webpack = require('webpack')
5
- const config = require('../config')
6
- const merge = require('webpack-merge')
7
- const baseWebpackConfig = require('./webpack.base.conf')
8
- const CopyWebpackPlugin = require('copy-webpack-plugin')
9
- const HtmlWebpackPlugin = require('html-webpack-plugin')
10
- const ScriptExtHtmlWebpackPlugin = require('script-ext-html-webpack-plugin')
11
- const MiniCssExtractPlugin = require('mini-css-extract-plugin')
12
- const OptimizeCSSAssetsPlugin = require('optimize-css-assets-webpack-plugin')
13
- const TerserPlugin = require('terser-webpack-plugin');
14
-
15
- function resolve(dir) {
16
- return path.join(__dirname, '..', dir)
17
- }
18
-
19
- const env = require('../config/prod.env')
20
-
21
- // For NamedChunksPlugin
22
- const seen = new Set()
23
- const nameLength = 4
24
-
25
- const webpackConfig = merge(baseWebpackConfig, {
26
- mode: 'production',
27
- module: {
28
- rules: utils.styleLoaders({
29
- sourceMap: config.build.productionSourceMap,
30
- extract: true,
31
- usePostCSS: true
32
- })
33
- },
34
- devtool: config.build.productionSourceMap ? config.build.devtool : false,
35
- output: {
36
- path: config.build.assetsRoot,
37
- filename: utils.assetsPath('js/[name].[chunkhash:8].js'),
38
- chunkFilename: utils.assetsPath('js/[name].[chunkhash:8].js')
39
- },
40
- plugins: [
41
- // http://vuejs.github.io/vue-loader/en/workflow/production.html
42
- new webpack.DefinePlugin({
43
- 'process.env': env
44
- }),
45
- // extract css into its own file
46
- new MiniCssExtractPlugin({
47
- filename: utils.assetsPath('css/[name].[contenthash:8].css'),
48
- chunkFilename: utils.assetsPath('css/[name].[contenthash:8].css')
49
- }),
50
- // generate dist index.html with correct asset hash for caching.
51
- // you can customize output by editing /index.html
52
- // see https://github.com/ampedandwired/html-webpack-plugin
53
- new HtmlWebpackPlugin({
54
- filename: config.build.index,
55
- template: 'index.html',
56
- inject: true,
57
- favicon: resolve('favicon.ico'),
58
- title: 'vue-admin-template',
59
- minify: {
60
- removeComments: true,
61
- collapseWhitespace: true,
62
- removeAttributeQuotes: true
63
- // more options:
64
- // https://github.com/kangax/html-minifier#options-quick-reference
65
- }
66
- // default sort mode uses toposort which cannot handle cyclic deps
67
- // in certain cases, and in webpack 4, chunk order in HTML doesn't
68
- // matter anyway
69
- }),
70
- new ScriptExtHtmlWebpackPlugin({
71
- //`runtime` must same as runtimeChunk name. default is `runtime`
72
- inline: /runtime\..*\.js$/
73
- }),
74
- // keep chunk.id stable when chunk has no name
75
- new webpack.NamedChunksPlugin(chunk => {
76
- if (chunk.name) {
77
- return chunk.name
78
- }
79
- const modules = Array.from(chunk.modulesIterable)
80
- if (modules.length > 1) {
81
- const hash = require('hash-sum')
82
- const joinedHash = hash(modules.map(m => m.id).join('_'))
83
- let len = nameLength
84
- while (seen.has(joinedHash.substr(0, len))) len++
85
- seen.add(joinedHash.substr(0, len))
86
- return `chunk-${joinedHash.substr(0, len)}`
87
- } else {
88
- return modules[0].id
89
- }
90
- }),
91
- // keep module.id stable when vender modules does not change
92
- new webpack.HashedModuleIdsPlugin(),
93
- // copy custom static assets
94
- new CopyWebpackPlugin([
95
- {
96
- from: path.resolve(__dirname, '../static'),
97
- to: config.build.assetsSubDirectory,
98
- ignore: ['.*']
99
- }
100
- ])
101
- ],
102
- optimization: {
103
- splitChunks: {
104
- chunks: 'all',
105
- cacheGroups: {
106
- libs: {
107
- name: 'chunk-libs',
108
- test: /[\\/]node_modules[\\/]/,
109
- priority: 10,
110
- chunks: 'initial' // 只打包初始时依赖的第三方
111
- },
112
- elementUI: {
113
- name: 'chunk-elementUI', // 单独将 elementUI 拆包
114
- priority: 20, // 权重要大于 libs 和 app 不然会被打包进 libs 或者 app
115
- test: /[\\/]node_modules[\\/]element-ui[\\/]/
116
- }
117
- }
118
- },
119
- runtimeChunk: 'single',
120
- minimizer: [
121
- new TerserPlugin(),
122
- // Compress extracted CSS. We are using this plugin so that possible
123
- // duplicated CSS from different components can be deduped.
124
- new OptimizeCSSAssetsPlugin()
125
- ]
126
- }
127
- })
128
-
129
- if (config.build.productionGzip) {
130
- const CompressionWebpackPlugin = require('compression-webpack-plugin')
131
-
132
- webpackConfig.plugins.push(
133
- new CompressionWebpackPlugin({
134
- filename: '[path][base].gz',
135
- algorithm: 'gzip',
136
- test: new RegExp(
137
- '\\.(' + config.build.productionGzipExtensions.join('|') + ')$'
138
- ),
139
- compressionOptions: {
140
- level: 9,
141
- },
142
- minRatio: Infinity,
143
- })
144
- )
145
- }
146
-
147
- if (config.build.generateAnalyzerReport || config.build.bundleAnalyzerReport) {
148
- const BundleAnalyzerPlugin = require('webpack-bundle-analyzer')
149
- .BundleAnalyzerPlugin
150
-
151
- if (config.build.bundleAnalyzerReport) {
152
- webpackConfig.plugins.push(
153
- new BundleAnalyzerPlugin({
154
- analyzerPort: 8080,
155
- generateStatsFile: false
156
- })
157
- )
158
- }
159
-
160
- if (config.build.generateAnalyzerReport) {
161
- webpackConfig.plugins.push(
162
- new BundleAnalyzerPlugin({
163
- analyzerMode: 'static',
164
- reportFilename: 'bundle-report.html',
165
- openAnalyzer: false
166
- })
167
- )
168
- }
169
- }
170
-
171
- module.exports = webpackConfig
1
+ 'use strict'
2
+ const path = require('path')
3
+ const utils = require('./utils')
4
+ const webpack = require('webpack')
5
+ const config = require('../config')
6
+ const merge = require('webpack-merge')
7
+ const baseWebpackConfig = require('./webpack.base.conf')
8
+ const CopyWebpackPlugin = require('copy-webpack-plugin')
9
+ const HtmlWebpackPlugin = require('html-webpack-plugin')
10
+ const MiniCssExtractPlugin = require('mini-css-extract-plugin')
11
+ const TerserPlugin = require('terser-webpack-plugin');
12
+
13
+ function resolve(dir) {
14
+ return path.join(__dirname, '..', dir)
15
+ }
16
+
17
+ const env = require('../config/prod.env')
18
+
19
+ const webpackConfig = merge(baseWebpackConfig, {
20
+ mode: 'production',
21
+ module: {
22
+ rules: utils.styleLoaders({
23
+ sourceMap: config.build.productionSourceMap,
24
+ extract: true,
25
+ usePostCSS: true
26
+ })
27
+ },
28
+ devtool: config.build.productionSourceMap ? config.build.devtool : false,
29
+ output: {
30
+ path: config.build.assetsRoot,
31
+ filename: utils.assetsPath('js/[name].[chunkhash:8].js'),
32
+ chunkFilename: utils.assetsPath('js/[name].[chunkhash:8].js')
33
+ },
34
+ plugins: [
35
+ // http://vuejs.github.io/vue-loader/en/workflow/production.html
36
+ new webpack.DefinePlugin({
37
+ 'process.env': env
38
+ }),
39
+ // generate dist index.html with correct asset hash for caching.
40
+ // you can customize output by editing /index.html
41
+ // see https://github.com/ampedandwired/html-webpack-plugin
42
+ new HtmlWebpackPlugin({
43
+ filename: config.build.index,
44
+ template: 'index.html',
45
+ inject: true,
46
+ favicon: resolve('favicon.ico'),
47
+ title: 'vue-admin-template',
48
+ minify: {
49
+ removeComments: true,
50
+ collapseWhitespace: true,
51
+ removeAttributeQuotes: true
52
+ // more options:
53
+ // https://github.com/kangax/html-minifier#options-quick-reference
54
+ }
55
+ // default sort mode uses toposort which cannot handle cyclic deps
56
+ // in certain cases, and in webpack 4, chunk order in HTML doesn't
57
+ // matter anyway
58
+ }),
59
+ // copy custom static assets
60
+ new CopyWebpackPlugin([
61
+ {
62
+ from: path.resolve(__dirname, '../static'),
63
+ to: config.build.assetsSubDirectory,
64
+ ignore: ['.*']
65
+ }
66
+ ])
67
+ ],
68
+ })
69
+
70
+ if (config.build.productionGzip) {
71
+ const CompressionWebpackPlugin = require('compression-webpack-plugin')
72
+
73
+ webpackConfig.plugins.push(
74
+ new CompressionWebpackPlugin({
75
+ filename: '[path][base].gz',
76
+ algorithm: 'gzip',
77
+ test: new RegExp(
78
+ '\\.(' + config.build.productionGzipExtensions.join('|') + ')$'
79
+ ),
80
+ compressionOptions: {
81
+ level: 9,
82
+ },
83
+ minRatio: Infinity,
84
+ })
85
+ )
86
+ }
87
+
88
+ if (config.build.generateAnalyzerReport || config.build.bundleAnalyzerReport) {
89
+ const BundleAnalyzerPlugin = require('webpack-bundle-analyzer')
90
+ .BundleAnalyzerPlugin
91
+
92
+ if (config.build.bundleAnalyzerReport) {
93
+ webpackConfig.plugins.push(
94
+ new BundleAnalyzerPlugin({
95
+ analyzerPort: 8080,
96
+ generateStatsFile: false
97
+ })
98
+ )
99
+ }
100
+
101
+ if (config.build.generateAnalyzerReport) {
102
+ webpackConfig.plugins.push(
103
+ new BundleAnalyzerPlugin({
104
+ analyzerMode: 'static',
105
+ reportFilename: 'bundle-report.html',
106
+ openAnalyzer: false
107
+ })
108
+ )
109
+ }
110
+ }
111
+
112
+ module.exports = webpackConfig
@@ -1,8 +1,8 @@
1
- 'use strict'
2
- const merge = require('webpack-merge')
3
- const prodEnv = require('./prod.env')
4
-
5
- module.exports = merge(prodEnv, {
6
- NODE_ENV: '"development"',
7
- BASE_API: '"http://localhost:3000/api"',
8
- })
1
+ 'use strict'
2
+ const merge = require('webpack-merge')
3
+ const prodEnv = require('./prod.env')
4
+
5
+ module.exports = merge(prodEnv, {
6
+ NODE_ENV: '"development"',
7
+ BASE_API: '"http://localhost:3000/api"',
8
+ })
@@ -1,86 +1,86 @@
1
- 'use strict'
2
- // Template version: 1.2.6
3
- // see http://vuejs-templates.github.io/webpack for documentation.
4
-
5
- const path = require('path')
6
-
7
- module.exports = {
8
- dev: {
9
- // Paths
10
- assetsSubDirectory: 'static',
11
- assetsPublicPath: '/',
12
- proxyTable: {},
13
-
14
- // Various Dev Server settings
15
- host: 'localhost', // can be overwritten by process.env.HOST
16
- port: 9528, // can be overwritten by process.env.PORT, if port is in use, a free one will be determined
17
- autoOpenBrowser: true,
18
- errorOverlay: true,
19
- notifyOnErrors: false,
20
- poll: false, // https://webpack.js.org/configuration/dev-server/#devserver-watchoptions-
21
-
22
- // Use Eslint Loader?
23
- // If true, your code will be linted during bundling and
24
- // linting errors and warnings will be shown in the console.
25
- useEslint: true,
26
- // If true, eslint errors and warnings will also be shown in the error overlay
27
- // in the browser.
28
- showEslintErrorsInOverlay: false,
29
-
30
- /**
31
- * Source Maps
32
- */
33
-
34
- // https://webpack.js.org/configuration/devtool/#development
35
- devtool: 'cheap-source-map',
36
-
37
- // CSS Sourcemaps off by default because relative paths are "buggy"
38
- // with this option, according to the CSS-Loader README
39
- // (https://github.com/webpack/css-loader#sourcemaps)
40
- // In our experience, they generally work as expected,
41
- // just be aware of this issue when enabling this option.
42
- cssSourceMap: false
43
- },
44
-
45
- build: {
46
- // Template for index.html
47
- index: path.resolve(__dirname, '../dist/index.html'),
48
-
49
- // Paths
50
- assetsRoot: path.resolve(__dirname, '../dist'),
51
- assetsSubDirectory: 'static',
52
-
53
- /**
54
- * You can set by youself according to actual condition
55
- * You will need to set this if you plan to deploy your site under a sub path,
56
- * for example GitHub pages. If you plan to deploy your site to https://foo.github.io/bar/,
57
- * then assetsPublicPath should be set to "/bar/".
58
- * In most cases please use '/' !!!
59
- */
60
- assetsPublicPath: '/admin/',
61
-
62
- /**
63
- * Source Maps
64
- */
65
-
66
- productionSourceMap: false,
67
- // https://webpack.js.org/configuration/devtool/#production
68
- devtool: 'source-map',
69
-
70
- // Gzip off by default as many popular static hosts such as
71
- // Surge or Netlify already gzip all static assets for you.
72
- // Before setting to `true`, make sure to:
73
- // npm install --save-dev compression-webpack-plugin
74
- productionGzip: true,
75
- productionGzipExtensions: ['json','js','js.map','css','html','svg','xml','txt'],
76
-
77
- // Run the build command with an extra argument to
78
- // View the bundle analyzer report after build finishes:
79
- // `npm run build --report`
80
- // Set to `true` or `false` to always turn it on or off
81
- bundleAnalyzerReport: process.env.npm_config_report || false,
82
-
83
- // `npm run build:prod --generate_report`
84
- generateAnalyzerReport: process.env.npm_config_generate_report || false
85
- }
86
- }
1
+ 'use strict'
2
+ // Template version: 1.2.6
3
+ // see http://vuejs-templates.github.io/webpack for documentation.
4
+
5
+ const path = require('path')
6
+
7
+ module.exports = {
8
+ dev: {
9
+ // Paths
10
+ assetsSubDirectory: 'static',
11
+ assetsPublicPath: '/',
12
+ proxyTable: {},
13
+
14
+ // Various Dev Server settings
15
+ host: 'localhost', // can be overwritten by process.env.HOST
16
+ port: 9528, // can be overwritten by process.env.PORT, if port is in use, a free one will be determined
17
+ autoOpenBrowser: true,
18
+ errorOverlay: true,
19
+ notifyOnErrors: false,
20
+ poll: false, // https://webpack.js.org/configuration/dev-server/#devserver-watchoptions-
21
+
22
+ // Use Eslint Loader?
23
+ // If true, your code will be linted during bundling and
24
+ // linting errors and warnings will be shown in the console.
25
+ useEslint: true,
26
+ // If true, eslint errors and warnings will also be shown in the error overlay
27
+ // in the browser.
28
+ showEslintErrorsInOverlay: false,
29
+
30
+ /**
31
+ * Source Maps
32
+ */
33
+
34
+ // https://webpack.js.org/configuration/devtool/#development
35
+ devtool: 'cheap-source-map',
36
+
37
+ // CSS Sourcemaps off by default because relative paths are "buggy"
38
+ // with this option, according to the CSS-Loader README
39
+ // (https://github.com/webpack/css-loader#sourcemaps)
40
+ // In our experience, they generally work as expected,
41
+ // just be aware of this issue when enabling this option.
42
+ cssSourceMap: false
43
+ },
44
+
45
+ build: {
46
+ // Template for index.html
47
+ index: path.resolve(__dirname, '../dist/index.html'),
48
+
49
+ // Paths
50
+ assetsRoot: path.resolve(__dirname, '../dist'),
51
+ assetsSubDirectory: 'static',
52
+
53
+ /**
54
+ * You can set by youself according to actual condition
55
+ * You will need to set this if you plan to deploy your site under a sub path,
56
+ * for example GitHub pages. If you plan to deploy your site to https://foo.github.io/bar/,
57
+ * then assetsPublicPath should be set to "/bar/".
58
+ * In most cases please use '/' !!!
59
+ */
60
+ assetsPublicPath: '/admin/',
61
+
62
+ /**
63
+ * Source Maps
64
+ */
65
+
66
+ productionSourceMap: false,
67
+ // https://webpack.js.org/configuration/devtool/#production
68
+ devtool: 'source-map',
69
+
70
+ // Gzip off by default as many popular static hosts such as
71
+ // Surge or Netlify already gzip all static assets for you.
72
+ // Before setting to `true`, make sure to:
73
+ // npm install --save-dev compression-webpack-plugin
74
+ productionGzip: true,
75
+ productionGzipExtensions: ['json','js','js.map','css','html','svg','xml','txt'],
76
+
77
+ // Run the build command with an extra argument to
78
+ // View the bundle analyzer report after build finishes:
79
+ // `npm run build --report`
80
+ // Set to `true` or `false` to always turn it on or off
81
+ bundleAnalyzerReport: process.env.npm_config_report || false,
82
+
83
+ // `npm run build:prod --generate_report`
84
+ generateAnalyzerReport: process.env.npm_config_generate_report || false
85
+ }
86
+ }
@@ -1,5 +1,5 @@
1
- 'use strict'
2
- module.exports = {
3
- NODE_ENV: '"production"',
4
- BASE_API: '"/api"',
5
- }
1
+ 'use strict'
2
+ module.exports = {
3
+ NODE_ENV: '"production"',
4
+ BASE_API: '"/api"',
5
+ }
@@ -0,0 +1 @@
1
+ export default "data:font/woff;base64,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"
@@ -0,0 +1 @@
1
+ export default __webpack_public_path__ + "static/fonts/element-icons.24ae61b.ttf";
@@ -0,0 +1 @@
1
+ export default __webpack_public_path__ + "static/fonts/element-icons.313f7da.woff";
@@ -0,0 +1 @@
1
+ export default __webpack_public_path__ + "static/fonts/element-icons.4520188.ttf";
@@ -0,0 +1 @@
1
+ export default "data:font/woff;base64,ZXhwb3J0IGRlZmF1bHQgImRhdGE6Zm9udC93b2ZmO2Jhc2U2NCxkMDlHUmdBQkFBQUFBQmdVQUFzQUFBQUFLeUFBQVFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQkhVMVZDQUFBQkNBQUFBRE1BQUFCQ3NQNno3VTlUTHpJQUFBRThBQUFBUXdBQUFGWlc3a2c0WTIxaGNBQUFBWUFBQUFIYkFBQUZWTlNrd1pCbmJIbG1BQUFEWEFBQUVFMEFBQnhjQU5ERjkyaGxZV1FBQUJPc0FBQUFMd0FBQURZUGg0bkJhR2hsWVFBQUU5d0FBQUFnQUFBQUpBZmdBOGhvYlhSNEFBQVQvQUFBQUJVQUFBRWdIK2tBQUd4dlkyRUFBQlFVQUFBQWtnQUFBSkx5TXVwdWJXRjRjQUFBRktnQUFBQWZBQUFBSUFGYUFIRnVZVzFsQUFBVXlBQUFBVnNBQUFLcHJBQjVpbkJ2YzNRQUFCWWtBQUFCN1FBQUF6d1p1TnUzZUp4allHUmdZT0Jpa0dQUVlXQjBjZk1KWWVCZ1lHR0FBSkFNWTA1bWVpSlFETW9EeXJHQWFRNGdab09JQWdDS0l3TlBBSGljWTJCa1lXQ2N3TURLd01IVXlYU0dnWUdoSDBJenZtWXdZdVJnWUdCaVlHVm13QW9DMGx4VEdCd1lLcDY1TVRmOGIyQ0lZVzVnYUFBS000TGtBTmhyQzdzQWVKekYxRWRXRzBFWXhQSC9JQ0dTeURtRFRNN2dISEdFalkvaFEzQTZINmNXWHZrR3VIcXFOejRCby9lVFJ2T2tVVDkxMVFjTUF4MDdzeTQwZjJrb3h4OWZiZHJySGNiYjYxMSsrLzJvSDBOK2ZkQkFkNCtQN1JuYWE4L0swYlNmK0ZuUHh2emRDZnBNTXNVME04d3l4endMdnNNaVN5eXp3aXByckxQQkpsdHNzOE11QTU2eHh6NEhISExFTVNlY2VoWG5YSERKRmRkZVQ5ZXJ2cUhIQ005NXdVdGU4Wm8zdk9VZDcvbkFSejV4eTJlKzhKVnZmT2NIZDl4N09UMmU3R2llN3FmL1AvcmxxZk9ydnZPL3drUGxKWXJ3dnFFbXZJTm9LRW9PMUFudkt1cEd1YXVHd3p1TmV1RTlSeVBoM1VlajRSeWdzWEFpMEhnNEcyZ2luQkxVRCtjRlRVYkpucWJDR1VMVDRUU2htWEN1MEd3NFlXZ3VuRFUwSDA0ZFdnam5EeTJHazRpV3dwbEV5K0Ywb3BWd1R0RnFPTEZvTFp4ZHRCNU9NZG9JNXhsdGhwT050c0laUjl2aHRLT2RjTzdSYnJnQmFCRHVncHNXYmdYYUQvY0RIVVRwc1E3RG5VRkg0ZmFnNDNDUDBFbTRVZWcwM0MxMEZtVW02RHpLWE5CRmxIbWh5M0FIMFZWUTl2dzZLSHQrRTI0b3F0eFZWTG0xcUhKL1VlVW1vOHFkUnBYYmpTcjNIRlZ1UEtyY2ZWUjVDcURLOHdCVm5neW84b3hBbGFjRnFqdzNVT1VKZ2lyUEVsUjVxcURLOHdWVjNQOEQzbFMwR2dCNG5JMVpEM0FVMTNsLzMzdjNSeWVkN25TM3VsdEpoNlRiVzkwdElOMEpkUDhDd3RJYUpEejhiYUFHYkRrRzJXQnFESGdvZFNGdWExaTN6VmpDNWs5SmFpYlRqSDBUWENlWXhDV0pHYnNwSmxzOENYR05Kd2tkSEtDRE9lTFc0elJENG1DYXBDNzM2UGQyNzZRN2lsSjB1OS91dm4zN3ZmZSs3L2Y5ZXlKT1FtNWVZU2RZQzVISWRES2JESkhQRWdLdWJvajVhRHNvV2laRnV5R2tPRU55czQ5cHFxYTQxVmlLM1FWeXpOVWM3c3RsRXJMTDdmS0REem9ncmZUbHRCVFZJSnNab1AzUUYyNEhhSTIwL1dFd1BpM0lEa0I5aTlieEJiNllmaFZDbmVvMC8wQ1NMK29aYk82TFNuVTd2Y0ZnYXpENFhKM0w2YXlqMU9IM3dWWTU3SEY2NmwzOEphZS9MWFNpY3didEJHK3IxcmIwL3Nab0pQalFXT2J4OXJqc0FUQU1rQ0pSMzljR0EyMEJQUDZpTFN3Rlc5MU5qWFV0YlkxcVZ6UHMvUGVHRnNuYm52aUE0Qi9nV204NmdCR1NJRVJKRDBBK0JacWFSZUlEZDBoRjBnRnlPcXZHRW9PUTYrdUVNSXFCNXM1dEdtZHMzK1k2dW4vejVuMnNEazgydnVrL1Jwb2I2cDl6Uys2OTlWNXB4TFZ2MDViOStHby9ZL3MzMTdIOVd6YnRjMzBqM1BSZWZmMTdUV0ZDS0k1ck9BZ3pTQVBLbURnVFJNdVJmSmpJTHNJU01UOW9DUlJtSjdpRlJBZEJEZy9RWHNqbk1wUmM1SmVkVGxBdVhnVEY2ZVNYNi95YWYrKzRMekhOTjdiUDF5N3UvZkVJTkk3djh4bFZ2UzdpVi9TTXo3ZHZ6RGN0Z1QzOVdydHYzM2dqUk9MKzhiMStqZFRPSjFRN0h3bUZvTGtoRjh6L245SFhIbngzMXQ4Tmd6ZCtldXpXNFpqeTBOc0R1K2Z5RHg2R1djOFF3cXI0aDBsMzdRaHhDelZxREZjcmlRc082QW8xeStGT1NPZFE3TGpxQy95eXl3WEtoUXVndUZ6OE1yOHVMNWlaakxaUEN6M1gydVVLUmxWR21iczUwZWRyYUs4M3F2cGR3Ty9la252MFpGdnpYWFN4eEdnazRxbnpUVXM5Y3JSNy90OHVtVy9ySDhsUitpdlNpbGQzcU5ubFZsT1FEV1J5K1hRSGhBSjVTK25OOE5WL0NUUjJOZ2FRZUlQam5sWlB1QTZjYjNzYkF3Q0JSbHF3cjZXcjR4NVAyTk5LS256WkYrZ25nbThjNFpNTnVGMnhYa2hrQmlFN0FNSVU1SUFQMk1hb1YzcTJIdmw1UE84aWk2akZ5UmRzcEMxN0xGNmVNdzJOd1dCamFhUXhhUE9rQlJRbFdxaUg1ajFBZC9BOXNHTW0vdzRzWTRRYjNPaUdWYkNLbFBWcE1wUHBLRzhacDZPRzBxRjBGb0djVlNVRU4rSWNjZTBES0JhTE9oN1JreVduczNUU29sQVFMY1dTWG1sQWF1bHZrcCtLSExQSU1LU0drR0VXcWpocXRnbFpoZ01XN3lLUUt1NG5EMTl3T0M0Y3RpZ1U3TkY1dEdxby9zcGJwQlU1R2xTMzErejJBRnZGai9LajNXQUF0b3FWenhReW1KQTVMZHJ5QWV3cUF6dzJFNWJ4Nzh5RUhZeDBsNys3aFNlZ3owQmtsMlhYalR6MzJOOVl2dUVqWEhNTHFTTkVzaGtxb1cvRGhoNStEL3hqRC84Szg4RW9mejBGaCtCUWlyK3UzMDd1bGt6Y2xud2t6UzI3NWJ5YzEvSWFyUkhKQzZrWFgweTlZRkZXTFhXK3ZkS01sSWhabEhuN1NZUjBvaFkwdEtSZWtzYlpCWlNBMElVaTlCRlNRcUFJOVdBajZwd0pOZUVwM1hJMUdERjBidWg0TFpsZzZPWU53OVIxQS8vTUNZSnlJUlJic1YwSG91czNjSFNkbDUvSzVEYllxRjUxRlI2a1BBb0FmUWtLSUUrbkFzWGhxYVJ4NC90VnlJQWpOYUtwMkFZMWhRWThsQmE0d0lmSjhWZld0MDR0N1VnZU1FRUhYV2g4QWdzNllrRjhCd28ybTFRQXk2aGdqOWc4QVEzVFlsa3lRQ2NUMzVtNFpodVhBa2FJVG9sZjVWZVRJRmtFcENTL0NoTE80NnAxVy8zR21nM3krS3lGVitRaU9OaDgzRUFUTTh2UXBqc3FkNU1JQnVNV0xMOUt2eWF3SE5md2V3ME8vV2NTWkJwT3Z2bnpKUDg1bFpPaWk3T3NvN3R4SkQvR2RSa1JSQ1FFREVJR1FSTlFBSDBEVXdLS0ZFaGJ2OElvUkZGTzBkRVNhdGswVGFxWHpBSnFteUpnREwya002S1hDRFU0QVVNSVVzanJsdlY0cUlhenNRNjRDRHZLWnZYZXhGMlZ4K3F1OFYzMlhBM0VrNGQ0eTdNbEVzNVQ0RG1nb0pieW9UVGd4T040aXJGUll6Z1pzS2FoNytlekxkU2lkc1FNRWRzTWU3eStFMUdySTVKSlpaNVJKdTRzRDRDc2dSS0lsbkNWSFAwSE4vRUxLMlloTWExNStIQVdCQ3BUQ01SbGNDT1k4NkRaZ0JFanZUSEdQMzhrMXUrZEEwdVRRanFJRTQ2MnBZL3hKMk92Uk9kNFlXbXFNalpLRDYzWmErczhMeU5MSnk2RkZwUDhFLzVKMHRSNWdScndYWHlDeHFSSlhhVlBQeFVURjNaMm1SVndQbDZNMFlyd3diYlhEYVVsUlVvcmR0YmlCOVFqS3pzRHhQbVdsU3UzMEFKYXJuREVzQ2lYV3dUNnhqVDlkbnFqZnBQb2REUzhlanVsMjFlSFN3WTF3djNMQVpiM3J4YmlRK3N2KzdPajdCenJ4aEZqdG1WamlKVERQc3hIZktEYUp0NDNBSmtKbjMvdXBmT09WUEpzSFFSYjZzOW1kZy9iRnJ2bTRCbzh4bDV6T0Y1ajNmZzh2RHR6dHI0bENIVm5reW5IK1pjT1h5Z05yWHIreUtGN3dmSGEyTmh4ZTYxL3lUamJoWktYU2Q0ZU9kd2tVZ01yY1FDUk1ZaDhVOHJrTkd6VkVua3BsN0NXM3l6bkI3QzNtN25DOGdEcTlkbVBGZzRQTC96bzJRdjhDdVlRblJEdlNDVDZFNGx1Q3ZQcUpWY0RYZStLZG1sclZZRCtlcW5CU2RmWFJiVTV5OWt1ZUdibmsvejZrenVmQWZ3SUU0cE8vcTQ2VDhXRGIzVEw5Y1AxWHVyMFFuOW55Z0Yzenc1NlBjUDFEUTdNVFUrM0o5MHdPSWtkUWh5bzZVYmJRM3RBRUpwVkRBdjdPak51bUFLMUNKNGdUOEZaL3N1YitDRStQY1IvQ2NGMUZWczR3WTZ3VmZqQ1JlcEpFMmttSkM5TEdwUHpFb1lTRHpoaHRsdFk4ZWxUeFZPL1UvNW00Nms1cC9panlIVTJOMzRIOTRCNWVSdjg5VGF1ZnlsRjEyNTdlRnZwSlAzeXNkSWZMUmQ0b2hOMlpzY3FGeEd5dFNEbHJxZ1RKY2lNRm42c1JaeVc1ejFEMXk5WnNwNWFGTXdmOGgvWDFjR3NIOXBhcnJRakpkWHhpaEYzbGQvcHhMSFNBUlZScjZKRkNRZVVGWkVCRGNFZHdQQUE0aXlLbUFQRm15aW5tMlJyOG5nUy9Fanc0TDlHd25UN1JibWJxOUpPWDY3Y0NkazVhdGFuWXFTMFVGUlpwbHhaSU1ZbmQxWEVxbTZuQkJkV3RmeXg0OHh6ZnQyNjh4NTJmQXpOeWpZdXBHaFV0bW5CSXFaanYwbXh6TU9ldXo0ZUd2cDQxOWp4cHliNnI5d3lVT21QMUo2cnlFa1ltWkNWaFJqaGE2QjhSWCtDQi9vNWNSRkJqRnNuMXl0M2szbG5BUW9DZ1JJS2Q1U2g2Y09vVGtnNVRndi9FVVlkeEcxcEJOSWh4VjQ1cGd3QlhIUTJMUVZzN1FlY2FnZmFHWTArVldDanZHaFBtQmRIV2VFcHZjZ09iTjE2Z09GY2FGZW1pM0wvdDNaeFU3Y1hoQlBhOVMzL2ZBd2NPbmJCanZpbVRWVXRmU0FuTmxwZW8wQXk2ajZPVHBVSm4rcURXQ0tUNndzWFJhd1JKNFpYL21PSVRJL2dZUlFLNkt4dUdNeThvUjlvRmkwUk96eFArbWpiSjA3NjZDbDBDcGdUWUU1ekE4bFVLclM4TnpwMnZKbGFaV2lQMXRoUXROWVNKVE5JbGd3UXExNnF3bFd6UzZ6cWxzbllkZkp0RzQvTkdnUVluR1ZUZTZHdzRUWnQ4MjdUVnB4b21EVTRXQmJjM1hmWVp0ZkNaOW1yTElYYUlSSURUQ2NnZjNFTXkreTczanpFZjcyRXBmaGJwU3RqSjVhQS85Q2tmUW5adXhHdnNyQnJ5ZjVJWTJWN1psbGNvb2dTNWFzdW1KMFo0UjhuMzVtM1lsTUtWanp3Nk1uSEVTUkN6Smpub2VuQVpSemluU1Ewalp6aFowOCsrZ0QvaDlTbUZUU2pJNHhXYmptbFc3a2lxZmF2REwwaUZ0U1d4akc1Um11UisxRHFWbkRLNUN3ZmF6NXhCdEN0RnR0NjJ2Q1lrY3NKSjJ1WVQxem43OUwwYUZ1eUw5VUt1Wlc1c3IrdDR0dEUyc1crUUJWdlVRb3JEQ1pHcU5aYzlWaXdNZm5reS9SZnIvS1BPeklkZUZTcnFYcjAwZ2U1ei84OVRBTkhSN1kvMDFHckVLR1BJdHByMU1vT1JmNkRFOGxpb2c5RmtYTHBWcnFEMVZyNW9TYkhtL0MwZWZTejZHTFIxMktTWTFjRUNnZ3UrTk93U0NnV0NsUXZGSVRCalpiSUtDWkFCSVJQd1hQVXhFVFlNRXFtQ1ZhYkdBWlhSa1FXQmRaWS80UzZGMXBYQWxqYjVEVjNRTEV1c2hLd0x2bUFZbDIrQzZxZTNMczNxVmV1L0ZMTkZhdW9pK1VPaWZJMVBtaDNzTnZ0V0hXTlBjMThKQ2c4Ri9vS0RZV2ZGa2xCTHEvaU9sVEFFNitvanpMa0VpN21XSFBwc2NmK0hMM2wxclZyM3h4KzZwek9tNUNzdWJUNXNUOHJOejZ5dkNzNTY4UVRqeFRpWFQyTDlYTjBXRCszc3FySjhwbXZXaGh2SW5QSkF0UkRYd2NOaVEyS0xpMUI4K1g2aHJxc1BRdVJiK1RUMlVRdW53dkxZV3NMckIyRUM3MExrY2d3U1VvSXFGQXljbmozRVAzaTdxZjUvNndmemFSejc3OGZXc0RvaWdkSDFOWXdaWkZRc01VQjBEcTl0ZHZYNUdqSnlFRm9tOTdhTkw5TjdVcXJLdE9IZGg4ZTJYTXBuODZNcmdlbllYeVJEemIwRHd5dWFKYmlrYzlNRDBVQm1wczhIYlBySGQ3R1FGWlNmYXE4Tk5EU0VwanBpL0JmUVN6ZEJiRk03Slk2RldPTnMzcFBBSDF5VFhYRzUxTlNYWWpCdjFscHRJV0IvMmJqeklPK1Q4U1NBVWpoaW1Xbm9CMDBsM2U2N0RhWE81N1Q2TmU3MWk3elorOGZTZmo0Mlk1bGl4TjE2VDlZM0FJdHp2em9TbFc1NzRGMi9oR3JvNnJpR1B6Y3ZaRVpxMmVkbU5hZ0RxK1lGNHJFTnZVdGxYc2VYSk1LVDk4VWFhdU1hN0x6bHM4bmNhZWt4U1BnZEV1WWlWL0svd0tHRHg2RTRWL2s3Lzh5REgzWUN4cS8wUHNoUDJINXFqZXM5WGFTcGVRK3NrSGszdGJlWGtCMWlhTFVKY3BTc2ZjWFNPZXdQSlZ6blNCMjRmREV0NmhLTEprUldKMGdLdmp3SUlncVBqY29paWJFWVMva2F4S0lxbnY2eCs5M2g3dThxMWUzcExyZjcxNjRFSW1zVGo0dThJYVRjK2NtWTQ4cjdZbG0vOUNDcHZwcHplM0s0N0hhUmsrSDFLNzhkdDF1U25ldnMrblFDS1VqUXhabHVyR2tiVUM1U1Jia2xoaExHaHVSUk81U29QTG9iZGJxR2hycSt2WCtXUEl6M1VaMys2eVdHRDVVMmxKNWJJdWs1Vmovc2dubTYzWVBWSmdqcmNWS29MYTZaMjRaQzg0YXREU2tqc0dhSlA5cDdVN0dBejF2d0pvVS8yazVadC84SHZzK3U0ZE14NXdzWjNGRWhuaWdBU01LVVFWOXNwMkM1UG9ob0tZUVN4WTRuWFpramVNN3pGVFlhRis2OFo1OGFQeHpoakh3Y0Npck4vbDlMMjdmL3FMUDM2VHJDemFvcytjNGZ2RDg4ejhvdldUSGJLeW9yUEQ5WWZ1R1Axa1RITmxLZFJpZWl3WDl0Z09VSHRoRzBZa3VlL3BQWTgrZlp1ejBDYnVuZ1NmbW1Jc3FjemJaUHBSQkcyYVNQU0tEbFZWdFlzdUZvWGVXMHVWeXpGM1pQaGFackZYZFViTVExcHVzZ210akd1N25vM3JCeml2MGNrcFJUSDd6bThsUlRIQ0tCYkh0d2pIdk1DcUZXYmtvQy9PNVZpZHc4VThyODZuc3VVUnFMYmg2RDA3TWJNcTlsZ2RGcGF4UHNma0dYNW1vRVd4Ynd3bzRMbXY1WGpRTUxIMnI3TzV0N2ZDVkRSdXVITmJlcnJiQWx6ZGRma0Y1NXgzbGhjdlRhbTJ4ZHU3dFUrOFhNUmxrMEthY2ZlS3ZZRWFTSHpuMmUzYUpEbzdCakJRLzhrYlZuc0prTFNMaWxpS3liS2ZZQXluL3hHNllrRDRHUkdzWHdUNHhpY1p2eFRhb3FSdGl6OHVXeSt0TUwrL2RwQU9RQnduY0NGZU1rbnc4QlI0VGRxYjRiM1h4S2V4TTh0L1FEL2w0RWp5bFN0NTY4NS9aOS9CN1VWZW5wcXFzQitoa1lWM2ViRTFqa0FNVFY5amJJNHJzMXZxZlpIZlZGdG5IR1RzT2o1cTZhZXBXTVRLOEsvdVQrbFpSYS9mMFdtSXBEY0c5aDc2T3hUYldKbVBINFVIUjB6VHZYQzhTNGpxUW5sSXZiMzFwK2pmMDM2T1V6VHY2OWtCdnVlWnhFRnFzcXMrcy93ZllKZjZkMVdmWHdFc3B2Mzd0R3I5T0tYaXZ2Zkt6R1ROKzlvcE5wL0NZdEJqbVo4TFdDUmx4em16NDBjS0ZQMnF3YUhaS04zanIzbzBIYzBHc1l0MGFFM3MzUkd6VjZHWXlUVVZ4LzBuU0xIMUtYV2FTTjlxeHNsYmZpVHZRdCtENi8rdjVQakR2U01mdHVsN0ptZUUzbFgxYXFVcXE4U251cThzUk1LWjgrQys4Nngya2RMRFhicjNkUFk3K3Y1YXV6ZEFBQUFCNG5HTmdaR0JnQU9KREFRMmI0dmx0dmpKd3N6Q0F3RFhqUlk4UTlQOEdGa2JtQmlDWGc0RUpKQW9BUWxrTElBQjRuR05nWkdCZ2J2amZ3QkREd3NEQThQOC9DeU1EVUFRRmVBQUFjallFc0hpY1kyRmdZR0IreWNEQXdqQ0tzV0VBcGVZQ0NRQUFBQUFBQUFBQWRnQ3lBUG9CS2dGMkFhSUJ6QUhpQWdvQ1JnSmNBbkFDaEFLZUFzd0RHQU5hQTJnRGRnT0VBNUlEdEFQV0Erb0VIQVJBQkhBRWhBU3VCTXdGQmdWQ0JhSUZ4Z1gwQmlRR1pBYTZCdDRHN0Fjc0IxWUhsQWY4Q0JRSVVnaCtDTVFJM0FrU0NVb0poZ255Q2hRS1VBcHFDd2dMTUF1S0M5SU1CZ3d3REdvTWtneXlEUHdOTkEyTURhb043QTR1QUFCNG5HTmdaR0JnOEdCSVplQmdBQUVtSU9ZQ1FnYUcvMkErQXdBYWR3SE1BSGljZlk5TFRzTXdFSVovOTRWSUJRc1FMTHJCWW9FRXFPbERna1czbGRvZFNGMTB3eXBOblRaVkVrZU9XNmtYNEE0Y2dKTndEcmdBbDJDU0RraXBWQktOODgzbjhYZ0M0QXhmRU5nOUZ4UTdGamloYk1jVkhPR2F1VXIrbHJsRy9NaGNSeE5ENWdiNUoyWUg5M2hoYnVJY3I5UkIxSTRwdThNYnMwQUxIOHdWbk9LVHVVcittN21HbHFnejEzRXBycGdiNUIrWUhVekZNM01UTitMZEdScmxXVFdYczYwTWZaMEVPckdPaWxTc0V0dk9SVFpSaTNYa21aSXJKVk5sc2xBbnN1ZDJTMzZzRW1WK2UyZWJSZC9hUUFaR3gzSkVsNmdvMGpJMWVxVjg2eTZ0VFFlZFRzRGU5WFZNb3c1aG9PREIwanFIeEF4YldrUDQwRWdRRkt1bE9vV0lJcWJJOC9aZlJZWUp1UVhXdE84VnZRN1ZIZDZaa2pQMERZdGNvZ2NYM1gvcXg0WEx6K3pQbldGRHMvVEpXcHBkVWhnNkV4T04rRS95cmhHeFJGcnNyY2o0NUYwc2kxTXBCdWpRRyt6VnU4WHQ4UStMWkgxZ0FIaWNiVkpaZTlNd0VQUVVPWElTcHkwMDNGZTVUM09VK3l4UWp2SXpISGtUNjRzdEdVbE8rUGoxK0VoTUh0Q0RQZDdkMlowZHk5dnkyalB3L24rT3NZVVRZUERSQTBlQVBnWVlJc1FJMjlqQkxrN2lGUFl3eG1tY3dWbWN3M2xjd0VWY3dtVmN3VlhzNHhxdTR3WnU0aFp1NHc3dTRoN3U0d0VlSXNJalBNWVRQTVVCbnVFNVh1QWxYdUUxM3VBdDN1RTlQdUFqRHZFSm4vRUZSL2lLYi9pT0h6akdUdysvZTJXUjZUanh5Umh0dUMyRklHdjVNalpLcWxuZmF1T2lSQzhWYjFCWkRPS3FiaGxsTkhWRElZM0lLQ3F5MHU1dDRFaVhMcE9LVnFVMWU5aENJMmVwQzFwY0Ztd1NpM200SW9wTVcySko3R2k4R2VsNmlkaVFhOGFHTFp4bzUzVGVieitjTG9ZdGFrYjREVGRNb245aWZaR1NtUGNTeXNqUmFKMXBCU1ZhbERrcHg1T29hUkpTSXQxNmNsRHJieHlhYVozWW5xWFlpSlJKTmRVOHI2eUtaOFRxK2lEVEluWlNLMTRYVjk3dHJnUHJUcXlhVWZxNVZLVmxFOHF5TU5jVFdYdVc2aXFwYUdtcmlPbFc5cHY0cUhtdVk3eVF3cFdHZGxidnJuWHRPeStNVkk0TU03R2FjME5UUXpZTmZwVmtheFU5UTdsZWtHL1Rha1Z1WFd5aVNxc2w1eXF0M1Yrb1RhcUNaaUVGQlZablNUMWh1NlYyanJUazZYUzh5ZW9rT2lubTVDeXJMd3ovbzNVZVNjV2N6SWt0SkMxNWU5ME9naVpUY1ZpOXMrZjlCWHVCOTZvQUFBQT0i"
@@ -0,0 +1 @@
1
+ export default "data:font/ttf;base64,ZXhwb3J0IGRlZmF1bHQgX193ZWJwYWNrX3B1YmxpY19wYXRoX18gKyAic3RhdGljL2ZvbnRzL2VsZW1lbnQtaWNvbnMuMjRhZTYxYi50dGYiOw=="
@@ -0,0 +1,37 @@
1
+
2
+ .expandable-textarea {
3
+ display: block;
4
+ min-height: 250px;
5
+ min-width: 250px;
6
+ resize: both !important;
7
+ }
8
+ .jsoneditor-vue img {
9
+ border: 1px solid #ddd;
10
+ border-radius: 4px;
11
+ padding: 5px;
12
+ width: 150px;
13
+ }
14
+ .jsoneditor-vue img:hover {
15
+ -webkit-box-shadow: 0 0 2px 1px rgba(0, 140, 186, 0.5);
16
+ box-shadow: 0 0 2px 1px rgba(0, 140, 186, 0.5);
17
+ }
18
+ .jsoneditor-vue button.btn {
19
+ font-size: 14px !important;
20
+ padding: 3px;
21
+ }
22
+ .jsoneditor-vue .form-control-label, label {
23
+ font-weight: bold;
24
+ }
25
+ .jsoneditor-vue input[type="checkbox"] {
26
+ margin-right: 5px;
27
+ margin-top: 3px;
28
+ }
29
+
30
+
31
+ .comment-link {
32
+ margin-top: -15px;
33
+ }
34
+ .error-message {
35
+ color: red;
36
+ }
37
+
@@ -0,0 +1 @@
1
+ .wscn-http404-container[data-v-8a6c390c]{-webkit-transform:translate(-50%, -50%);transform:translate(-50%, -50%);position:absolute;top:40%;left:50%}.wscn-http404[data-v-8a6c390c]{position:relative;width:1200px;padding:0 50px;overflow:hidden}.wscn-http404 .pic-404[data-v-8a6c390c]{position:relative;float:left;width:600px;overflow:hidden}.wscn-http404 .pic-404__parent[data-v-8a6c390c]{width:100%}.wscn-http404 .pic-404__child[data-v-8a6c390c]{position:absolute}.wscn-http404 .pic-404__child.left[data-v-8a6c390c]{width:80px;top:17px;left:220px;opacity:0;-webkit-animation-name:cloudLeft-data-v-8a6c390c;animation-name:cloudLeft-data-v-8a6c390c;-webkit-animation-duration:2s;animation-duration:2s;-webkit-animation-timing-function:linear;animation-timing-function:linear;-webkit-animation-fill-mode:forwards;animation-fill-mode:forwards;-webkit-animation-delay:1s;animation-delay:1s}.wscn-http404 .pic-404__child.mid[data-v-8a6c390c]{width:46px;top:10px;left:420px;opacity:0;-webkit-animation-name:cloudMid-data-v-8a6c390c;animation-name:cloudMid-data-v-8a6c390c;-webkit-animation-duration:2s;animation-duration:2s;-webkit-animation-timing-function:linear;animation-timing-function:linear;-webkit-animation-fill-mode:forwards;animation-fill-mode:forwards;-webkit-animation-delay:1.2s;animation-delay:1.2s}.wscn-http404 .pic-404__child.right[data-v-8a6c390c]{width:62px;top:100px;left:500px;opacity:0;-webkit-animation-name:cloudRight-data-v-8a6c390c;animation-name:cloudRight-data-v-8a6c390c;-webkit-animation-duration:2s;animation-duration:2s;-webkit-animation-timing-function:linear;animation-timing-function:linear;-webkit-animation-fill-mode:forwards;animation-fill-mode:forwards;-webkit-animation-delay:1s;animation-delay:1s}@-webkit-keyframes cloudLeft-data-v-8a6c390c{0%{top:17px;left:220px;opacity:0}20%{top:33px;left:188px;opacity:1}80%{top:81px;left:92px;opacity:1}100%{top:97px;left:60px;opacity:0}}@keyframes cloudLeft-data-v-8a6c390c{0%{top:17px;left:220px;opacity:0}20%{top:33px;left:188px;opacity:1}80%{top:81px;left:92px;opacity:1}100%{top:97px;left:60px;opacity:0}}@-webkit-keyframes cloudMid-data-v-8a6c390c{0%{top:10px;left:420px;opacity:0}20%{top:40px;left:360px;opacity:1}70%{top:130px;left:180px;opacity:1}100%{top:160px;left:120px;opacity:0}}@keyframes cloudMid-data-v-8a6c390c{0%{top:10px;left:420px;opacity:0}20%{top:40px;left:360px;opacity:1}70%{top:130px;left:180px;opacity:1}100%{top:160px;left:120px;opacity:0}}@-webkit-keyframes cloudRight-data-v-8a6c390c{0%{top:100px;left:500px;opacity:0}20%{top:120px;left:460px;opacity:1}80%{top:180px;left:340px;opacity:1}100%{top:200px;left:300px;opacity:0}}@keyframes cloudRight-data-v-8a6c390c{0%{top:100px;left:500px;opacity:0}20%{top:120px;left:460px;opacity:1}80%{top:180px;left:340px;opacity:1}100%{top:200px;left:300px;opacity:0}}.wscn-http404 .bullshit[data-v-8a6c390c]{position:relative;float:left;width:300px;padding:30px 0;overflow:hidden}.wscn-http404 .bullshit__oops[data-v-8a6c390c]{font-size:32px;font-weight:bold;line-height:40px;color:#1482f0;opacity:0;margin-bottom:20px;-webkit-animation-name:slideUp-data-v-8a6c390c;animation-name:slideUp-data-v-8a6c390c;-webkit-animation-duration:.5s;animation-duration:.5s;-webkit-animation-fill-mode:forwards;animation-fill-mode:forwards}.wscn-http404 .bullshit__headline[data-v-8a6c390c]{font-size:20px;line-height:24px;color:#222;font-weight:bold;opacity:0;margin-bottom:10px;-webkit-animation-name:slideUp-data-v-8a6c390c;animation-name:slideUp-data-v-8a6c390c;-webkit-animation-duration:.5s;animation-duration:.5s;-webkit-animation-delay:.1s;animation-delay:.1s;-webkit-animation-fill-mode:forwards;animation-fill-mode:forwards}.wscn-http404 .bullshit__info[data-v-8a6c390c]{font-size:13px;line-height:21px;color:gray;opacity:0;margin-bottom:30px;-webkit-animation-name:slideUp-data-v-8a6c390c;animation-name:slideUp-data-v-8a6c390c;-webkit-animation-duration:.5s;animation-duration:.5s;-webkit-animation-delay:.2s;animation-delay:.2s;-webkit-animation-fill-mode:forwards;animation-fill-mode:forwards}.wscn-http404 .bullshit__return-home[data-v-8a6c390c]{display:block;float:left;width:110px;height:36px;background:#1482f0;border-radius:100px;text-align:center;color:#fff;opacity:0;font-size:14px;line-height:36px;cursor:pointer;-webkit-animation-name:slideUp-data-v-8a6c390c;animation-name:slideUp-data-v-8a6c390c;-webkit-animation-duration:.5s;animation-duration:.5s;-webkit-animation-delay:.3s;animation-delay:.3s;-webkit-animation-fill-mode:forwards;animation-fill-mode:forwards}@-webkit-keyframes slideUp-data-v-8a6c390c{0%{-webkit-transform:translateY(60px);transform:translateY(60px);opacity:0}100%{-webkit-transform:translateY(0);transform:translateY(0);opacity:1}}@keyframes slideUp-data-v-8a6c390c{0%{-webkit-transform:translateY(60px);transform:translateY(60px);opacity:0}100%{-webkit-transform:translateY(0);transform:translateY(0);opacity:1}}
@@ -0,0 +1,34 @@
1
+
2
+ .expandable-textarea {
3
+ display: block;
4
+ min-height: 250px;
5
+ min-width: 250px;
6
+ resize: both !important;
7
+ }
8
+ .jsoneditor-vue img {
9
+ border: 1px solid #ddd;
10
+ border-radius: 4px;
11
+ padding: 5px;
12
+ width: 150px;
13
+ }
14
+ .jsoneditor-vue img:hover {
15
+ -webkit-box-shadow: 0 0 2px 1px rgba(0, 140, 186, 0.5);
16
+ box-shadow: 0 0 2px 1px rgba(0, 140, 186, 0.5);
17
+ }
18
+ .jsoneditor-vue button.btn {
19
+ font-size: 14px !important;
20
+ padding: 3px;
21
+ }
22
+ .jsoneditor-vue .form-control-label, label {
23
+ font-weight: bold;
24
+ }
25
+ .jsoneditor-vue input[type="checkbox"] {
26
+ margin-right: 5px;
27
+ margin-top: 3px;
28
+ }
29
+
30
+
31
+ .error-message[data-v-300598f4] {
32
+ color: red;
33
+ }
34
+