designer 0.1.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (48) hide show
  1. checksums.yaml +7 -0
  2. data/.gitattributes +2 -0
  3. data/.gitignore +4 -0
  4. data/.travis.yml +17 -0
  5. data/Gemfile +6 -0
  6. data/Gemfile.lock +142 -0
  7. data/LICENSE +21 -0
  8. data/README.md +102 -0
  9. data/Rakefile +27 -0
  10. data/TODO.md +6 -0
  11. data/app/assets/stylesheets/designer.scss +189 -0
  12. data/app/assets/stylesheets/designer/_texy.scss +311 -0
  13. data/app/controllers/designer/application_controller.rb +33 -0
  14. data/app/controllers/designer/editor_controller.rb +50 -0
  15. data/app/controllers/designer/images_controller.rb +66 -0
  16. data/app/helpers/designer/designer_helper.rb +95 -0
  17. data/app/javascript/designer/DefaultInput.vue +82 -0
  18. data/app/javascript/designer/components/DefaultForm.vue +65 -0
  19. data/app/javascript/designer/components/DefaultInput.vue +82 -0
  20. data/app/javascript/designer/components/MediaGallery.vue +564 -0
  21. data/app/javascript/designer/components/SortableInputArray.vue +74 -0
  22. data/app/javascript/designer/editor.js +65 -0
  23. data/app/javascript/designer/helpers.js +73 -0
  24. data/app/javascript/designer/index.js +136 -0
  25. data/app/javascript/packs/designer.js +2 -0
  26. data/app/views/designer/application/notifications.js.erb +13 -0
  27. data/app/views/designer/editor/show.html.slim +88 -0
  28. data/app/views/designer/elements/_image.html.slim +11 -0
  29. data/app/views/designer/elements/_quote.html.slim +7 -0
  30. data/app/views/designer/elements/_separator.html.slim +1 -0
  31. data/app/views/designer/elements/_text.html.slim +5 -0
  32. data/app/views/layouts/designer/application.html.slim +9 -0
  33. data/bin/test +6 -0
  34. data/bin/webpack +19 -0
  35. data/bin/webpack-dev-server +19 -0
  36. data/config/routes.rb +6 -0
  37. data/designer.gemspec +29 -0
  38. data/lib/designer.rb +10 -0
  39. data/lib/designer/attribute.rb +15 -0
  40. data/lib/designer/configuration.rb +6 -0
  41. data/lib/designer/engine.rb +35 -0
  42. data/lib/designer/version.rb +5 -0
  43. data/lib/tasks/designer.rake +20 -0
  44. data/lib/templates/dev_installer.rb +13 -0
  45. data/lib/templates/installer.rb +11 -0
  46. data/package.json +33 -0
  47. data/yarn.lock +288 -0
  48. metadata +160 -0
@@ -0,0 +1,11 @@
1
+ - image ||= designer_attachment(image_key) if local_assigns[:image_key]
2
+ - classes ||= ''
3
+ - classes = classes.join(' ') if classes.is_a?(Array)
4
+ figure class=(classes)
5
+ - if image
6
+ - if local_assigns[:size]
7
+ = image_tag image.variant(resize: size)
8
+ - else
9
+ = image_tag image
10
+ - if local_assigns[:caption]
11
+ figcaption= caption
@@ -0,0 +1,7 @@
1
+ - classes ||= ''
2
+ - classes = classes.join(' ') if classes.is_a?(Array)
3
+ blockquote class=(classes)
4
+ - if local_assigns[:text]
5
+ = text
6
+ - if local_assigns[:cite]
7
+ cite= cite
@@ -0,0 +1 @@
1
+ hr style="margin: #{size ||= 3}rem 0"
@@ -0,0 +1,5 @@
1
+ - text ||= nil
2
+ - text = designer_markdown(text) if text.present?
3
+ - text = designer_content(text) if text.present?
4
+ / - raise text.html_safe.inspect
5
+ .text= text&.html_safe
@@ -0,0 +1,9 @@
1
+ doctype html
2
+ html
3
+ head
4
+ title Page Designer
5
+ = csrf_meta_tags
6
+ = stylesheet_link_tag 'designer'
7
+ = javascript_pack_tag 'designer'
8
+ body
9
+ = yield
data/bin/test ADDED
@@ -0,0 +1,6 @@
1
+ #!/usr/bin/env ruby
2
+ # frozen_string_literal: true
3
+ $: << File.expand_path("../test", __dir__)
4
+
5
+ require "bundler/setup"
6
+ require "rails/plugin/test"
data/bin/webpack ADDED
@@ -0,0 +1,19 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ ENV["RAILS_ENV"] ||= ENV["RACK_ENV"] || "development"
4
+ ENV["NODE_ENV"] ||= "development"
5
+
6
+ require "pathname"
7
+ ENV["BUNDLE_GEMFILE"] ||= File.expand_path("../../Gemfile",
8
+ Pathname.new(__FILE__).realpath)
9
+
10
+ require "rubygems"
11
+ require "bundler/setup"
12
+
13
+ require "webpacker"
14
+ require "webpacker/webpack_runner"
15
+
16
+ APP_ROOT = File.expand_path("..", __dir__)
17
+ Dir.chdir(APP_ROOT) do
18
+ Webpacker::WebpackRunner.run(ARGV)
19
+ end
@@ -0,0 +1,19 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ ENV["RAILS_ENV"] ||= ENV["RACK_ENV"] || "development"
4
+ ENV["NODE_ENV"] ||= "development"
5
+
6
+ require "pathname"
7
+ ENV["BUNDLE_GEMFILE"] ||= File.expand_path("../../Gemfile",
8
+ Pathname.new(__FILE__).realpath)
9
+
10
+ require "rubygems"
11
+ require "bundler/setup"
12
+
13
+ require "webpacker"
14
+ require "webpacker/dev_server_runner"
15
+
16
+ APP_ROOT = File.expand_path("..", __dir__)
17
+ Dir.chdir(APP_ROOT) do
18
+ Webpacker::DevServerRunner.run(ARGV)
19
+ end
data/config/routes.rb ADDED
@@ -0,0 +1,6 @@
1
+ Designer::Engine.routes.draw do
2
+ get ':resource_name/:id/edit', to: 'editor#show', as: :editor
3
+ patch ':resource_name/:id/edit', to: 'editor#update'
4
+
5
+ resources :images, param: :key, only: [:index, :create, :destroy]
6
+ end
data/designer.gemspec ADDED
@@ -0,0 +1,29 @@
1
+ $:.push File.expand_path("lib", __dir__)
2
+
3
+ # Maintain your gem's version:
4
+ require "designer/version"
5
+
6
+ # Describe your gem and declare its dependencies:
7
+ Gem::Specification.new do |s|
8
+ s.name = "designer"
9
+ s.version = Designer::VERSION
10
+ s.authors = ["Kam Low"]
11
+ s.email = ["hello@sourcey.com"]
12
+ s.summary = "Design rich text markdown pages in Rails applications"
13
+ s.homepage = "https://github.com/sourcey/designer"
14
+ s.license = "MIT"
15
+
16
+ # s.required_ruby_version = ">= 2.5.0"
17
+
18
+ s.add_dependency "rails", ">= 5.2.0"
19
+ s.add_dependency "nokogiri"
20
+ s.add_dependency "kramdown"
21
+
22
+ s.add_development_dependency "bundler", "~> 1.15"
23
+ # s.add_development_dependency "mini_magick"
24
+ # s.add_development_dependency "sqlite3"
25
+ s.add_development_dependency "webpacker", "~> 3.2.2"
26
+
27
+ s.files = `git ls-files`.split("\n")
28
+ s.test_files = `git ls-files -- test/*`.split("\n")
29
+ end
data/lib/designer.rb ADDED
@@ -0,0 +1,10 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "active_record"
4
+ require "designer/engine"
5
+
6
+ module Designer
7
+ extend ActiveSupport::Autoload
8
+
9
+ autoload :Attribute
10
+ end
@@ -0,0 +1,15 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Designer
4
+ module Attribute
5
+ extend ActiveSupport::Concern
6
+
7
+ class_methods do
8
+ def acts_as_designer(options = {})
9
+ serialize :elements, Array
10
+
11
+ has_many_attached :attachments
12
+ end
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,6 @@
1
+ module Designer
2
+ # @return [ActiveSupport::HashWithIndifferentAccess] Designer's current configuration
3
+ def self.configuration
4
+ @configuration ||= YAML.load_file(Rails.root.join('config/designer.yml')).with_indifferent_access
5
+ end
6
+ end
@@ -0,0 +1,35 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "rails/engine"
4
+
5
+ require "designer/configuration"
6
+ require "designer/attribute"
7
+
8
+ module Designer
9
+ class Engine < Rails::Engine
10
+ isolate_namespace Designer
11
+ config.eager_load_namespaces << Designer
12
+
13
+ Webpacker::Compiler.watched_paths << Engine.root.join('app', 'javascript', 'designer', '*')
14
+ Webpacker::Compiler.watched_paths << Engine.root.join('app', 'javascript', 'designer', 'components', '*')
15
+
16
+ initializer "designer.acts_as_designer" do
17
+ ActiveSupport.on_load(:active_record) do
18
+ include Designer::Attribute
19
+ end
20
+ end
21
+
22
+ initializer "designer.assets.precompile" do |app|
23
+ app.config.assets.precompile += %w( designer.css )
24
+ end
25
+
26
+ initializer "designer.helper" do
27
+ ActiveSupport.on_load(:action_controller_base) do
28
+ helper Designer::Engine.helpers
29
+ end
30
+ config.to_prepare do
31
+ ::ApplicationController.helper(Designer::DesignerHelper)
32
+ end
33
+ end
34
+ end
35
+ end
@@ -0,0 +1,5 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Designer
4
+ VERSION = '0.1.2'
5
+ end
@@ -0,0 +1,20 @@
1
+ # frozen_string_literal: true
2
+
3
+ namespace :designer do
4
+ desc "Copy over the migration, stylesheet, and JavaScript files"
5
+ task install: %w( environment run_installer ) # copy_migrations
6
+
7
+ task :run_installer do
8
+ installer_template = File.expand_path("../templates/installer.rb", __dir__)
9
+ system "#{RbConfig.ruby} ./bin/rails app:template LOCATION=#{installer_template}"
10
+ end
11
+
12
+ task :run_dev_installer do
13
+ installer_template = File.expand_path("../templates/dev_installer.rb", __dir__)
14
+ system "#{RbConfig.ruby} ./bin/rails app:template LOCATION=#{installer_template}"
15
+ end
16
+
17
+ # task :copy_migrations do
18
+ # Rake::Task["designer:install:migrations"].invoke
19
+ # end
20
+ end
@@ -0,0 +1,13 @@
1
+ # Symlink designer javascripts so we can use the parent application
2
+ # webpacker for easy development
3
+ say "Symlink designer.js to app/javascript/packs"
4
+ designer_js = File.join(__dir__, "../..", "app", "javascript", "packs", "designer.js")
5
+ run "ln -s #{designer_js} app/javascript/packs/designer.js"
6
+
7
+ designer_dir = File.join(__dir__, "../..", "app", "javascript", "designer")
8
+ say "Symlink /designer directory to app/javascript"
9
+ run "ln -s #{designer_dir} app/javascript/designer"
10
+
11
+ # FIXME: Replace with release version on release
12
+ say "Installing JavaScript dependency"
13
+ run "yarn add https://github.com/sourcey/designer"
@@ -0,0 +1,11 @@
1
+ # say "Copying designer.scss to app/assets/stylesheets"
2
+ # copy_file Engine.root.join('app/assets/stylesheets/designer.scss'), "app/assets/stylesheets/designer.scss"
3
+ # copy_file "#{__dir__}/designer.scss", "app/assets/stylesheets/designer.scss"
4
+
5
+ say "Copying designer.js to app/javascript/packs"
6
+ copy_file Engine.root.join('app/javascript/packs/designer.js'), "app/javascript/packs/designer.js"
7
+ # copy_file "#{__dir__}/designer.js", "app/javascript/packs/designer.js"
8
+
9
+ # FIXME: Replace with release version on release
10
+ say "Installing JavaScript dependency"
11
+ run "yarn add https://github.com/sourcey/designer"
data/package.json ADDED
@@ -0,0 +1,33 @@
1
+ {
2
+ "name": "designer",
3
+ "version": "0.2.0",
4
+ "description": "Design rich text markdown pages in Rails applications",
5
+ "main": "app/javascript/designer/index.js",
6
+ "files": [
7
+ "app/javascript/designer/*.js"
8
+ ],
9
+ "repository": "https://github.com/sourcey/designer",
10
+ "author": "Sourcey",
11
+ "contributors": [
12
+ "Kam Low <hello@sourcey.com>"
13
+ ],
14
+ "license": "MIT",
15
+ "private": true,
16
+ "dependencies": {
17
+ "@voerro/vue-tagsinput": "^1.11.1",
18
+ "bootstrap": "4.1.3",
19
+ "font-awesome": "^4.7.0",
20
+ "jquery": "^3.3.1",
21
+ "jquery-resizable-dom": "^0.32.0",
22
+ "jquery-serializejson": "^2.8.1",
23
+ "popper.js": "^1.14.6",
24
+ "rails-ujs": "^5.2.1-1",
25
+ "simplemde": "^1.11.2",
26
+ "toastr": "^2.1.4",
27
+ "vue": "^2.5.17",
28
+ "vue-loader": "^15.4.2",
29
+ "vue-template-compiler": "^2.5.21",
30
+ "vue-upload-component": "^2.8.16",
31
+ "vuedraggable": "^2.17.0"
32
+ }
33
+ }
data/yarn.lock ADDED
@@ -0,0 +1,288 @@
1
+ # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
2
+ # yarn lockfile v1
3
+
4
+
5
+ "@voerro/vue-tagsinput@^1.11.1":
6
+ version "1.11.1"
7
+ resolved "https://registry.yarnpkg.com/@voerro/vue-tagsinput/-/vue-tagsinput-1.11.1.tgz#428371f9ee1ea086e1dc2782b13732836b9fe575"
8
+ dependencies:
9
+ vue "^2.5.0"
10
+
11
+ "@vue/component-compiler-utils@^2.0.0":
12
+ version "2.3.1"
13
+ resolved "https://registry.yarnpkg.com/@vue/component-compiler-utils/-/component-compiler-utils-2.3.1.tgz#d1c2623f02ad3fe6b6fc9c3762be55c9c61e3977"
14
+ dependencies:
15
+ consolidate "^0.15.1"
16
+ hash-sum "^1.0.2"
17
+ lru-cache "^4.1.2"
18
+ merge-source-map "^1.1.0"
19
+ postcss "^6.0.20"
20
+ postcss-selector-parser "^3.1.1"
21
+ prettier "1.13.7"
22
+ source-map "^0.5.6"
23
+ vue-template-es2015-compiler "^1.6.0"
24
+
25
+ ansi-styles@^3.2.1:
26
+ version "3.2.1"
27
+ resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d"
28
+ dependencies:
29
+ color-convert "^1.9.0"
30
+
31
+ big.js@^5.2.2:
32
+ version "5.2.2"
33
+ resolved "https://registry.yarnpkg.com/big.js/-/big.js-5.2.2.tgz#65f0af382f578bcdc742bd9c281e9cb2d7768328"
34
+
35
+ bluebird@^3.1.1:
36
+ version "3.5.3"
37
+ resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.5.3.tgz#7d01c6f9616c9a51ab0f8c549a79dfe6ec33efa7"
38
+
39
+ bootstrap@4.1.3:
40
+ version "4.1.3"
41
+ resolved "https://registry.yarnpkg.com/bootstrap/-/bootstrap-4.1.3.tgz#0eb371af2c8448e8c210411d0cb824a6409a12be"
42
+
43
+ chalk@^2.4.1:
44
+ version "2.4.1"
45
+ resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.1.tgz#18c49ab16a037b6eb0152cc83e3471338215b66e"
46
+ dependencies:
47
+ ansi-styles "^3.2.1"
48
+ escape-string-regexp "^1.0.5"
49
+ supports-color "^5.3.0"
50
+
51
+ codemirror-spell-checker@*:
52
+ version "1.1.2"
53
+ resolved "https://registry.yarnpkg.com/codemirror-spell-checker/-/codemirror-spell-checker-1.1.2.tgz#1c660f9089483ccb5113b9ba9ca19c3f4993371e"
54
+ dependencies:
55
+ typo-js "*"
56
+
57
+ codemirror@*:
58
+ version "5.42.2"
59
+ resolved "https://registry.yarnpkg.com/codemirror/-/codemirror-5.42.2.tgz#801ab715a7a7e1c7ed4162b78e9d8138b98de8f0"
60
+
61
+ color-convert@^1.9.0:
62
+ version "1.9.3"
63
+ resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8"
64
+ dependencies:
65
+ color-name "1.1.3"
66
+
67
+ color-name@1.1.3:
68
+ version "1.1.3"
69
+ resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25"
70
+
71
+ consolidate@^0.15.1:
72
+ version "0.15.1"
73
+ resolved "https://registry.yarnpkg.com/consolidate/-/consolidate-0.15.1.tgz#21ab043235c71a07d45d9aad98593b0dba56bab7"
74
+ dependencies:
75
+ bluebird "^3.1.1"
76
+
77
+ de-indent@^1.0.2:
78
+ version "1.0.2"
79
+ resolved "https://registry.yarnpkg.com/de-indent/-/de-indent-1.0.2.tgz#b2038e846dc33baa5796128d0804b455b8c1e21d"
80
+
81
+ dot-prop@^4.1.1:
82
+ version "4.2.0"
83
+ resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-4.2.0.tgz#1f19e0c2e1aa0e32797c49799f2837ac6af69c57"
84
+ dependencies:
85
+ is-obj "^1.0.0"
86
+
87
+ emojis-list@^2.0.0:
88
+ version "2.1.0"
89
+ resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-2.1.0.tgz#4daa4d9db00f9819880c79fa457ae5b09a1fd389"
90
+
91
+ escape-string-regexp@^1.0.5:
92
+ version "1.0.5"
93
+ resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4"
94
+
95
+ font-awesome@^4.7.0:
96
+ version "4.7.0"
97
+ resolved "https://registry.yarnpkg.com/font-awesome/-/font-awesome-4.7.0.tgz#8fa8cf0411a1a31afd07b06d2902bb9fc815a133"
98
+
99
+ has-flag@^3.0.0:
100
+ version "3.0.0"
101
+ resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd"
102
+
103
+ hash-sum@^1.0.2:
104
+ version "1.0.2"
105
+ resolved "https://registry.yarnpkg.com/hash-sum/-/hash-sum-1.0.2.tgz#33b40777754c6432573c120cc3808bbd10d47f04"
106
+
107
+ he@^1.1.0:
108
+ version "1.2.0"
109
+ resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f"
110
+
111
+ indexes-of@^1.0.1:
112
+ version "1.0.1"
113
+ resolved "https://registry.yarnpkg.com/indexes-of/-/indexes-of-1.0.1.tgz#f30f716c8e2bd346c7b67d3df3915566a7c05607"
114
+
115
+ is-obj@^1.0.0:
116
+ version "1.0.1"
117
+ resolved "http://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f"
118
+
119
+ jquery-resizable-dom@^0.32.0:
120
+ version "0.32.0"
121
+ resolved "https://registry.yarnpkg.com/jquery-resizable-dom/-/jquery-resizable-dom-0.32.0.tgz#85269fdc604fce3e0b15fe65f2ebb7ca7d4dd247"
122
+ dependencies:
123
+ jquery "~3.3.1"
124
+
125
+ jquery-serializejson@^2.8.1:
126
+ version "2.9.0"
127
+ resolved "https://registry.yarnpkg.com/jquery-serializejson/-/jquery-serializejson-2.9.0.tgz#03e3764e3a4b42c1c5aae9f93d7f19320c5f35a6"
128
+
129
+ jquery@>=1.12.0, jquery@^3.3.1, jquery@~3.3.1:
130
+ version "3.3.1"
131
+ resolved "https://registry.yarnpkg.com/jquery/-/jquery-3.3.1.tgz#958ce29e81c9790f31be7792df5d4d95fc57fbca"
132
+
133
+ json5@^1.0.1:
134
+ version "1.0.1"
135
+ resolved "http://registry.npmjs.org/json5/-/json5-1.0.1.tgz#779fb0018604fa854eacbf6252180d83543e3dbe"
136
+ dependencies:
137
+ minimist "^1.2.0"
138
+
139
+ loader-utils@^1.0.2, loader-utils@^1.1.0:
140
+ version "1.2.3"
141
+ resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.2.3.tgz#1ff5dc6911c9f0a062531a4c04b609406108c2c7"
142
+ dependencies:
143
+ big.js "^5.2.2"
144
+ emojis-list "^2.0.0"
145
+ json5 "^1.0.1"
146
+
147
+ lru-cache@^4.1.2:
148
+ version "4.1.5"
149
+ resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.5.tgz#8bbe50ea85bed59bc9e33dcab8235ee9bcf443cd"
150
+ dependencies:
151
+ pseudomap "^1.0.2"
152
+ yallist "^2.1.2"
153
+
154
+ marked@*:
155
+ version "0.5.2"
156
+ resolved "https://registry.yarnpkg.com/marked/-/marked-0.5.2.tgz#3efdb27b1fd0ecec4f5aba362bddcd18120e5ba9"
157
+
158
+ merge-source-map@^1.1.0:
159
+ version "1.1.0"
160
+ resolved "https://registry.yarnpkg.com/merge-source-map/-/merge-source-map-1.1.0.tgz#2fdde7e6020939f70906a68f2d7ae685e4c8c646"
161
+ dependencies:
162
+ source-map "^0.6.1"
163
+
164
+ minimist@^1.2.0:
165
+ version "1.2.0"
166
+ resolved "http://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284"
167
+
168
+ popper.js@^1.14.6:
169
+ version "1.14.6"
170
+ resolved "https://registry.yarnpkg.com/popper.js/-/popper.js-1.14.6.tgz#ab20dd4edf9288b8b3b6531c47c361107b60b4b0"
171
+
172
+ postcss-selector-parser@^3.1.1:
173
+ version "3.1.1"
174
+ resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-3.1.1.tgz#4f875f4afb0c96573d5cf4d74011aee250a7e865"
175
+ dependencies:
176
+ dot-prop "^4.1.1"
177
+ indexes-of "^1.0.1"
178
+ uniq "^1.0.1"
179
+
180
+ postcss@^6.0.20:
181
+ version "6.0.23"
182
+ resolved "https://registry.yarnpkg.com/postcss/-/postcss-6.0.23.tgz#61c82cc328ac60e677645f979054eb98bc0e3324"
183
+ dependencies:
184
+ chalk "^2.4.1"
185
+ source-map "^0.6.1"
186
+ supports-color "^5.4.0"
187
+
188
+ prettier@1.13.7:
189
+ version "1.13.7"
190
+ resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.13.7.tgz#850f3b8af784a49a6ea2d2eaa7ed1428a34b7281"
191
+
192
+ pseudomap@^1.0.2:
193
+ version "1.0.2"
194
+ resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3"
195
+
196
+ rails-ujs@^5.2.1-1:
197
+ version "5.2.2"
198
+ resolved "https://registry.yarnpkg.com/rails-ujs/-/rails-ujs-5.2.2.tgz#ab01dd087a323975637b50e93e7afcc0f9068568"
199
+
200
+ simplemde@^1.11.2:
201
+ version "1.11.2"
202
+ resolved "https://registry.yarnpkg.com/simplemde/-/simplemde-1.11.2.tgz#a23a35d978d2c40ef07dec008c92f070d8e080e3"
203
+ dependencies:
204
+ codemirror "*"
205
+ codemirror-spell-checker "*"
206
+ marked "*"
207
+
208
+ sortablejs@^1.7.0:
209
+ version "1.7.0"
210
+ resolved "https://registry.yarnpkg.com/sortablejs/-/sortablejs-1.7.0.tgz#80a2b2370abd568e1cec8c271131ef30a904fa28"
211
+
212
+ source-map@^0.5.6:
213
+ version "0.5.7"
214
+ resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc"
215
+
216
+ source-map@^0.6.1:
217
+ version "0.6.1"
218
+ resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263"
219
+
220
+ supports-color@^5.3.0, supports-color@^5.4.0:
221
+ version "5.5.0"
222
+ resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f"
223
+ dependencies:
224
+ has-flag "^3.0.0"
225
+
226
+ toastr@^2.1.4:
227
+ version "2.1.4"
228
+ resolved "https://registry.yarnpkg.com/toastr/-/toastr-2.1.4.tgz#8b43be64fb9d0c414871446f2db8e8ca4e95f181"
229
+ dependencies:
230
+ jquery ">=1.12.0"
231
+
232
+ typo-js@*:
233
+ version "1.0.3"
234
+ resolved "https://registry.yarnpkg.com/typo-js/-/typo-js-1.0.3.tgz#54d8ebc7949f1a7810908b6002c6841526c99d5a"
235
+
236
+ uniq@^1.0.1:
237
+ version "1.0.1"
238
+ resolved "https://registry.yarnpkg.com/uniq/-/uniq-1.0.1.tgz#b31c5ae8254844a3a8281541ce2b04b865a734ff"
239
+
240
+ vue-hot-reload-api@^2.3.0:
241
+ version "2.3.1"
242
+ resolved "https://registry.yarnpkg.com/vue-hot-reload-api/-/vue-hot-reload-api-2.3.1.tgz#b2d3d95402a811602380783ea4f566eb875569a2"
243
+
244
+ vue-loader@^15.4.2:
245
+ version "15.4.2"
246
+ resolved "https://registry.yarnpkg.com/vue-loader/-/vue-loader-15.4.2.tgz#812bb26e447dd3b84c485eb634190d914ce125e2"
247
+ dependencies:
248
+ "@vue/component-compiler-utils" "^2.0.0"
249
+ hash-sum "^1.0.2"
250
+ loader-utils "^1.1.0"
251
+ vue-hot-reload-api "^2.3.0"
252
+ vue-style-loader "^4.1.0"
253
+
254
+ vue-style-loader@^4.1.0:
255
+ version "4.1.2"
256
+ resolved "https://registry.yarnpkg.com/vue-style-loader/-/vue-style-loader-4.1.2.tgz#dedf349806f25ceb4e64f3ad7c0a44fba735fcf8"
257
+ dependencies:
258
+ hash-sum "^1.0.2"
259
+ loader-utils "^1.0.2"
260
+
261
+ vue-template-compiler@^2.5.21:
262
+ version "2.5.21"
263
+ resolved "https://registry.yarnpkg.com/vue-template-compiler/-/vue-template-compiler-2.5.21.tgz#a57ceb903177e8f643560a8d639a0f8db647054a"
264
+ dependencies:
265
+ de-indent "^1.0.2"
266
+ he "^1.1.0"
267
+
268
+ vue-template-es2015-compiler@^1.6.0:
269
+ version "1.6.0"
270
+ resolved "https://registry.yarnpkg.com/vue-template-es2015-compiler/-/vue-template-es2015-compiler-1.6.0.tgz#dc42697133302ce3017524356a6c61b7b69b4a18"
271
+
272
+ vue-upload-component@^2.8.16:
273
+ version "2.8.16"
274
+ resolved "https://registry.yarnpkg.com/vue-upload-component/-/vue-upload-component-2.8.16.tgz#cf8c9c7d6b342a5e0485d6955cebd22f31806ed2"
275
+
276
+ vue@^2.5.0, vue@^2.5.17:
277
+ version "2.5.21"
278
+ resolved "https://registry.yarnpkg.com/vue/-/vue-2.5.21.tgz#3d33dcd03bb813912ce894a8303ab553699c4a85"
279
+
280
+ vuedraggable@^2.17.0:
281
+ version "2.17.0"
282
+ resolved "https://registry.yarnpkg.com/vuedraggable/-/vuedraggable-2.17.0.tgz#489c16c9bcb9eb06f441944d3c52e5f2bb7060f9"
283
+ dependencies:
284
+ sortablejs "^1.7.0"
285
+
286
+ yallist@^2.1.2:
287
+ version "2.1.2"
288
+ resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52"