cm-admin 0.9.0 → 1.0.0

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 (48) hide show
  1. checksums.yaml +4 -4
  2. data/.github/ISSUE_TEMPLATE/bug_report.md +82 -0
  3. data/.github/ISSUE_TEMPLATE/config.yml +5 -0
  4. data/.github/ISSUE_TEMPLATE/feature_request.md +21 -0
  5. data/Gemfile.lock +96 -9
  6. data/app/assets/config/cm_admin_manifest.js +1 -0
  7. data/app/assets/javascripts/cm_admin/application.js +5 -0
  8. data/app/{javascript/packs → assets/javascripts}/cm_admin/exports.js +0 -0
  9. data/app/{javascript/packs → assets/javascripts}/cm_admin/filters.js +20 -31
  10. data/app/{javascript/packs → assets/javascripts}/cm_admin/form_validation.js +0 -0
  11. data/app/{javascript/packs → assets/javascripts}/cm_admin/quick_search.js +16 -3
  12. data/app/assets/javascripts/cm_admin/scaffolds.js +44 -0
  13. data/app/assets/stylesheets/cm_admin/base/form.scss +115 -40
  14. data/app/assets/stylesheets/cm_admin/base/scaffold.scss +2 -0
  15. data/app/assets/stylesheets/cm_admin/components/_input.scss +12 -0
  16. data/app/controllers/cm_admin/resource_controller.rb +10 -7
  17. data/app/helpers/cm_admin/application_helper.rb +0 -3
  18. data/app/javascript/packs/cm_admin/application.js +4 -4
  19. data/app/javascript/packs/cm_admin/scaffolds.js +81 -0
  20. data/app/views/cm_admin/main/_nested_fields.html.slim +26 -9
  21. data/app/views/cm_admin/main/_nested_table_form.html.slim +9 -10
  22. data/app/views/cm_admin/main/_tabs.html.slim +1 -1
  23. data/app/views/layouts/cm_admin.html.slim +9 -4
  24. data/app/views/layouts/static.html.slim +3 -2
  25. data/bin/importmap +15 -0
  26. data/bin/webpack +8 -8
  27. data/bin/webpack-dev-server +9 -9
  28. data/cm_admin.gemspec +3 -0
  29. data/config/importmap.rb +12 -0
  30. data/config/webpack/development.js +1 -1
  31. data/config/webpack/environment.js +1 -1
  32. data/config/webpack/production.js +1 -1
  33. data/config/webpacker.yml +2 -2
  34. data/lib/cm_admin/configuration.rb +5 -2
  35. data/lib/cm_admin/engine.rb +36 -15
  36. data/lib/cm_admin/models/filter.rb +1 -1
  37. data/lib/cm_admin/models/form_field.rb +8 -2
  38. data/lib/cm_admin/version.rb +1 -1
  39. data/lib/cm_admin/version_manager.rb +21 -0
  40. data/lib/cm_admin/view_helpers/form_field_helper.rb +183 -35
  41. data/lib/cm_admin/view_helpers/page_info_helper.rb +4 -0
  42. data/lib/cm_admin.rb +7 -2
  43. data/lib/generators/cm_admin/templates/actiontext.scss +0 -1
  44. data/lib/tasks/webpack_install.rake +15 -13
  45. data/package-lock.json +42 -55
  46. data/tmp/cache/webpacker/last-compilation-digest-development +1 -1
  47. data/yarn.lock +6708 -6916
  48. metadata +43 -6
@@ -1,50 +1,198 @@
1
1
  module CmAdmin
2
2
  module ViewHelpers
3
3
  module FormFieldHelper
4
- def input_field_for_column(f, field)
5
- return unless field.display_if.call(f.object)
6
- value = field.helper_method ? send(field.helper_method, f.object, field.field_name) : f.object.send(field.field_name)
7
- is_required = f.object._validators[field.field_name].map(&:kind).include?(:presence)
4
+ def input_field_for_column(form_obj, cm_field)
5
+ return unless cm_field.display_if.call(form_obj.object)
6
+
7
+ value = cm_field.helper_method ? send(cm_field.helper_method, form_obj.object, cm_field.field_name) : form_obj.object.send(cm_field.field_name)
8
+ is_required = form_obj.object._validators[cm_field.field_name].map(&:kind).include?(:presence)
8
9
  required_class = is_required ? 'required' : ''
9
- case field.input_type
10
- when :integer
11
- return f.text_field field.field_name, class: "normal-input #{required_class}", disabled: field.disabled, value: value, placeholder: "Enter #{field.field_name.to_s.humanize.downcase}", data: { behaviour: 'integer-only' }
12
- when :decimal
13
- return f.number_field field.field_name, class: "normal-input #{required_class}", disabled: field.disabled, value: value, placeholder: "Enter #{field.field_name.to_s.downcase.gsub('_', ' ')}", data: { behaviour: 'decimal-only' }
14
- when :string
15
- return f.text_field field.field_name, class: "normal-input #{required_class}", disabled: field.disabled, value: value, placeholder: "Enter #{field.field_name.to_s.downcase.gsub('_', ' ')}"
16
- when :single_select
17
- return f.select field.field_name, options_for_select(select_collection_value(f.object, field), f.object.send(field.field_name)), {include_blank: field.placeholder.to_s}, class: "normal-input #{required_class} select-2", disabled: field.disabled
18
- when :multi_select
19
- return f.select field.field_name, options_for_select(select_collection_value(f.object, field), f.object.send(field.field_name)), {include_blank: "Select #{field.field_name.to_s.downcase.gsub('_', ' ')}"}, class: "normal-input #{required_class} select-2", disabled: field.disabled, multiple: true
20
- when :date
21
- return f.text_field field.field_name, class: "normal-input #{required_class}", disabled: field.disabled, value: value&.strftime('%d-%m-%Y'), placeholder: "Enter #{field.field_name.to_s.downcase.gsub('_', ' ')}", data: { behaviour: 'date-only' }
22
- when :date_time
23
- return f.text_field field.field_name, class: "normal-input #{required_class}", disabled: field.disabled, value: value, placeholder: "Enter #{field.field_name.to_s.downcase.gsub('_', ' ')}", data: { behaviour: 'date-time' }
24
- when :text
25
- return f.text_area field.field_name, class: "normal-input #{required_class}", placeholder: "Enter #{field.field_name.to_s.downcase.gsub('_', ' ')}"
26
- when :rich_text
27
- return f.rich_text_area field.field_name, class: "normal-input #{required_class}", placeholder: "Enter #{field.field_name.to_s.downcase.gsub('_', ' ')}"
28
- when :single_file_upload
29
- return f.file_field field.field_name, class: "normal-input #{required_class}"
30
- when :multi_file_upload
31
- return f.file_field field.field_name, multiple: true, class: "normal-input #{required_class}"
32
- when :hidden
33
- return f.hidden_field field.field_name, value: value, name: field.html_attr[:name] || "#{f.object_name}[#{field.field_name}]"
34
- end
10
+ target_action = @model.available_actions.select{|x| x.name == cm_field.target[:action_name].to_s}.first if cm_field.target.present?
11
+ send("cm_#{cm_field.input_type}_field", form_obj, cm_field, value, required_class, target_action)
12
+ end
13
+
14
+ def cm_integer_field(form_obj, cm_field, value, required_class, _target_action)
15
+ form_obj.text_field cm_field.field_name,
16
+ class: "normal-input #{required_class}",
17
+ disabled: cm_field.disabled,
18
+ value: value,
19
+ placeholder: "Enter #{cm_field.field_name.to_s.humanize.downcase}",
20
+ data: { behaviour: 'integer-only' }
21
+ end
22
+
23
+ def cm_decimal_field(form_obj, cm_field, value, required_class, _target_action)
24
+ form_obj.number_field cm_field.field_name,
25
+ class: "normal-input #{required_class}",
26
+ disabled: cm_field.disabled,
27
+ value: value,
28
+ placeholder: "Enter #{cm_field.field_name.to_s.downcase.gsub('_', ' ')}",
29
+ data: { behaviour: 'decimal-only' }
30
+ end
31
+
32
+ def cm_string_field(form_obj, cm_field, value, required_class, _target_action)
33
+ form_obj.text_field cm_field.field_name,
34
+ class: "normal-input #{required_class}",
35
+ disabled: cm_field.disabled,
36
+ value: value,
37
+ placeholder: "Enter #{cm_field.field_name.to_s.downcase.gsub('_', ' ')}"
38
+ end
39
+
40
+ def cm_single_select_field(form_obj, cm_field, value, required_class, target_action)
41
+ form_obj.select cm_field.field_name, options_for_select(select_collection_value(form_obj.object, cm_field), form_obj.object.send(cm_field.field_name)),
42
+ { include_blank: cm_field.placeholder.to_s },
43
+ class: "normal-input #{required_class} select-2",
44
+ disabled: cm_field.disabled,
45
+ data: {
46
+ field_name: cm_field.field_name,
47
+ field_type: 'linked-field',
48
+ target_action: target_action&.name,
49
+ target_url: target_action&.name ? cm_admin.send("#{@model.name.underscore}_#{target_action&.name}_path") : ''
50
+ }
51
+ end
52
+
53
+ def cm_multi_select_field(form_obj, cm_field, value, required_class, target_action)
54
+ form_obj.select cm_field.field_name,
55
+ options_for_select(select_collection_value(form_obj.object, cm_field), form_obj.object.send(cm_field.field_name)),
56
+ { include_blank: "Select #{cm_field.field_name.to_s.downcase.gsub('_', ' ')}" },
57
+ class: "normal-input #{required_class} select-2",
58
+ disabled: cm_field.disabled, multiple: true
59
+ end
60
+
61
+ def cm_date_field(form_obj, cm_field, value, required_class, _target_action)
62
+ form_obj.text_field cm_field.field_name,
63
+ class: "normal-input #{required_class}",
64
+ disabled: cm_field.disabled,
65
+ value: value&.strftime('%d-%m-%Y'),
66
+ placeholder: "Enter #{cm_field.field_name.to_s.downcase.gsub('_', ' ')}",
67
+ data: { behaviour: 'date-only' }
68
+ end
69
+
70
+ def cm_date_time_field(form_obj, cm_field, value, required_class, _target_action)
71
+ form_obj.text_field cm_field.field_name,
72
+ class: "normal-input #{required_class}",
73
+ disabled: cm_field.disabled,
74
+ value: value,
75
+ placeholder: "Enter #{cm_field.field_name.to_s.downcase.gsub('_', ' ')}",
76
+ data: { behaviour: 'date-time' }
77
+ end
78
+
79
+ def cm_text_field(form_obj, cm_field, value, required_class, _target_action)
80
+ form_obj.text_area cm_field.field_name,
81
+ class: "normal-input #{required_class}",
82
+ placeholder: "Enter #{cm_field.field_name.to_s.downcase.gsub('_', ' ')}"
83
+ end
84
+
85
+ def cm_rich_text_field(form_obj, cm_field, value, required_class, _target_action)
86
+ form_obj.rich_text_area cm_field.field_name,
87
+ class: "normal-input #{required_class}",
88
+ placeholder: "Enter #{cm_field.field_name.to_s.downcase.gsub('_', ' ')}"
89
+ end
90
+
91
+ def cm_single_file_upload_field(form_obj, cm_field, value, required_class, _target_action)
92
+ form_obj.file_field cm_field.field_name, class: "normal-input #{required_class}"
93
+ end
94
+
95
+ def cm_single_multi_upload_field(form_obj, cm_field, value, required_class, _target_action)
96
+ form_obj.file_field cm_field.field_name, multiple: true, class: "normal-input #{required_class}"
97
+ end
98
+
99
+ def cm_check_box_field(form_obj, cm_field, value, required_class, target_action)
100
+ format_check_box_options(value, form_obj, cm_field, required_class, target_action)
101
+ end
102
+
103
+ def cm_radio_button_field(form_obj, cm_field, value, required_class, _target_action)
104
+ format_radio_button_options(value, form_obj)
105
+ end
106
+
107
+ def cm_hidden_field(form_obj, cm_field, value, required_class, _target_action)
108
+ form_obj.hidden_field cm_field.field_name,
109
+ value: value,
110
+ name: cm_field.html_attr[:name] || "#{form_obj.object_name}[#{cm_field.field_name}]"
35
111
  end
36
112
 
37
113
  # Refactor: Collection argument can be removed.
38
114
  # helper_method argument will accept a method where value can be passed.
39
- def select_collection_value(object, field)
40
- if field.helper_method
41
- collection = send(field.helper_method, object, field.field_name)
42
- elsif field.collection
43
- collection = field.collection
115
+ def select_collection_value(object, cm_field)
116
+ if cm_field.helper_method
117
+ collection = send(cm_field.helper_method, object, cm_field.field_name)
118
+ elsif cm_field.collection
119
+ collection = cm_field.collection
44
120
  else
45
121
  collection = []
46
122
  end
47
123
  end
124
+
125
+ def format_check_box_options(value, form_obj, cm_field, required_class, target_action)
126
+ if value.class == Array
127
+ format_check_box_array(value, form_obj, cm_field, required_class, target_action)
128
+ else
129
+ form_obj.check_box cm_field.field_name,
130
+ {
131
+ class: "normal-input cm-checkbox #{required_class}",
132
+ disabled: cm_field.disabled,
133
+ data: {
134
+ field_name: cm_field.field_name,
135
+ field_type: 'linked-field',
136
+ target_action: target_action&.name,
137
+ target_url: target_action&.name ? cm_admin.send("#{@model.name.underscore}_#{target_action&.name}_path") : ''
138
+ }
139
+ }
140
+ end
141
+ end
142
+
143
+ def format_check_box_array(options, form_obj, cm_field, required_class, target_action)
144
+ content_tag :div do
145
+ options.each do |key, val|
146
+ concat format_check_box(val, key, form_obj, cm_field, required_class, target_action)
147
+ end
148
+ end
149
+ end
150
+
151
+ def format_check_box(val, key, form_obj, cm_field, required_class, target_action)
152
+ content_tag :div, class: 'cm-checkbox-section' do
153
+ concat format_check_box_tag(val, form_obj, cm_field, required_class, target_action)
154
+ concat content_tag(:div, key, class: 'cm-checkbox-label')
155
+ end
156
+ end
157
+
158
+ def format_check_box_tag(val, form_obj, cm_field, required_class, target_action)
159
+ content_tag :div, class: 'cm-radio-tag' do
160
+ concat form_obj.check_box cm_field.field_name,
161
+ {
162
+ class: "normal-input cm-checkbox #{required_class} #{target_action.present? ? 'linked-field-request' : ''}",
163
+ disabled: cm_field.disabled,
164
+ name: "#{@model.name.underscore}[#{cm_field.field_name}][]",
165
+ data: {
166
+ field_name: cm_field.field_name,
167
+ field_type: 'linked-field',
168
+ target_action: target_action&.name,
169
+ target_url: target_action&.name ? cm_admin.send("#{@model.name.underscore}_#{target_action&.name}_path", ':param_1') : ''
170
+ }
171
+ }, val
172
+ end
173
+ end
174
+
175
+
176
+ def format_radio_button_options(options, form_obj)
177
+ content_tag :div do
178
+ options.each do |val, key|
179
+ concat format_radio_option(val, key, form_obj)
180
+ end
181
+ end
182
+ end
183
+
184
+ def format_radio_option(val, key, form_obj)
185
+ content_tag :div, class: 'cm-radio-section' do
186
+ concat format_radio_button(val, form_obj)
187
+ concat content_tag(:div, key, class: 'cm-radio-label')
188
+ end
189
+ end
190
+
191
+ def format_radio_button(val, form_obj)
192
+ content_tag :div, class: 'cm-radio-tag' do
193
+ concat form_obj.radio_button :level, val, class: 'normal-input cm-radio'
194
+ end
195
+ end
48
196
  end
49
197
  end
50
198
  end
@@ -84,6 +84,10 @@ module CmAdmin
84
84
  def custom_action_title(custom_action)
85
85
  custom_action.display_name.to_s.presence || custom_action.name.to_s.titleize
86
86
  end
87
+
88
+ def tab_display_name(nav_item_name)
89
+ nav_item_name.instance_of?(Symbol) ? nav_item_name.to_s.titleize : nav_item_name.to_s
90
+ end
87
91
  end
88
92
  end
89
93
  end
data/lib/cm_admin.rb CHANGED
@@ -14,9 +14,9 @@ module CmAdmin
14
14
  @@authorized_roles ||= []
15
15
  @@included_models ||= []
16
16
  @@cm_admin_models ||= []
17
-
18
17
 
19
18
  class << self
19
+
20
20
  def webpacker
21
21
  @webpacker ||= ::Webpacker::Instance.new(
22
22
  root_path: CmAdmin::Engine.root,
@@ -25,7 +25,12 @@ module CmAdmin
25
25
  end
26
26
 
27
27
  def configure(&block)
28
- instance_eval(&block)
28
+ # instance_eval(&block)
29
+ @config ||= Configuration.new
30
+ yield(@config)
31
+ end
32
+
33
+ def layout
29
34
  end
30
35
 
31
36
  def config
@@ -3,7 +3,6 @@
3
3
  // the trix-editor content (whether displayed or under editing). Feel free to incorporate this
4
4
  // inclusion directly in any other asset bundle and remove this file.
5
5
  //
6
- //= require trix/dist/trix
7
6
 
8
7
  // We need to override trix.css’s image gallery styles to accommodate the
9
8
  // <action-text-attachment> element we wrap around attachments. Otherwise,
@@ -4,11 +4,11 @@
4
4
  # end
5
5
 
6
6
  def ensure_log_goes_to_stdout
7
- old_logger = Webpacker.logger
8
- Webpacker.logger = ActiveSupport::Logger.new(STDOUT)
9
- yield
7
+ old_logger = Webpacker.logger
8
+ Webpacker.logger = ActiveSupport::Logger.new(STDOUT)
9
+ yield
10
10
  ensure
11
- Webpacker.logger = old_logger
11
+ Webpacker.logger = old_logger
12
12
  end
13
13
 
14
14
  namespace :cm_admin do
@@ -51,13 +51,15 @@ def enhance_assets_precompile
51
51
  end
52
52
  end
53
53
 
54
- # Compile packs after we've compiled all other assets during precompilation
55
- skip_webpacker_precompile = %w(no false n f).include?(ENV["WEBPACKER_PRECOMPILE"])
54
+ if CmAdmin::VersionManager.rails6?
55
+ # Compile packs after we've compiled all other assets during precompilation
56
+ skip_webpacker_precompile = %w(no false n f).include?(ENV["WEBPACKER_PRECOMPILE"])
56
57
 
57
- unless skip_webpacker_precompile
58
- if Rake::Task.task_defined?("assets:precompile")
59
- enhance_assets_precompile
60
- else
61
- Rake::Task.define_task("assets:precompile" =>"cm_admin:webpacker:compile")
62
- end
63
- end
58
+ unless skip_webpacker_precompile
59
+ if Rake::Task.task_defined?("assets:precompile")
60
+ enhance_assets_precompile
61
+ else
62
+ Rake::Task.define_task("assets:precompile" =>"cm_admin:webpacker:compile")
63
+ end
64
+ end
65
+ end
data/package-lock.json CHANGED
@@ -3965,10 +3965,9 @@
3965
3965
  }
3966
3966
  },
3967
3967
  "node_modules/decode-uri-component": {
3968
- "version": "0.2.0",
3969
- "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz",
3970
- "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=",
3971
- "license": "MIT",
3968
+ "version": "0.2.2",
3969
+ "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.2.tgz",
3970
+ "integrity": "sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==",
3972
3971
  "engines": {
3973
3972
  "node": ">=0.10"
3974
3973
  }
@@ -4902,10 +4901,9 @@
4902
4901
  }
4903
4902
  },
4904
4903
  "node_modules/file-loader/node_modules/loader-utils": {
4905
- "version": "2.0.0",
4906
- "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.0.tgz",
4907
- "integrity": "sha512-rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ==",
4908
- "license": "MIT",
4904
+ "version": "2.0.4",
4905
+ "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz",
4906
+ "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==",
4909
4907
  "dependencies": {
4910
4908
  "big.js": "^5.2.2",
4911
4909
  "emojis-list": "^3.0.0",
@@ -6483,13 +6481,9 @@
6483
6481
  "license": "MIT"
6484
6482
  },
6485
6483
  "node_modules/json5": {
6486
- "version": "2.2.0",
6487
- "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz",
6488
- "integrity": "sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==",
6489
- "license": "MIT",
6490
- "dependencies": {
6491
- "minimist": "^1.2.5"
6492
- },
6484
+ "version": "2.2.3",
6485
+ "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz",
6486
+ "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==",
6493
6487
  "bin": {
6494
6488
  "json5": "lib/cli.js"
6495
6489
  },
@@ -6550,10 +6544,9 @@
6550
6544
  }
6551
6545
  },
6552
6546
  "node_modules/loader-utils": {
6553
- "version": "1.4.0",
6554
- "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz",
6555
- "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==",
6556
- "license": "MIT",
6547
+ "version": "1.4.2",
6548
+ "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.2.tgz",
6549
+ "integrity": "sha512-I5d00Pd/jwMD2QCduo657+YM/6L3KZu++pmX9VFncxaxvHcru9jx1lBaFft+r4Mt2jK0Yhp41XlRAihzPxHNCg==",
6557
6550
  "dependencies": {
6558
6551
  "big.js": "^5.2.2",
6559
6552
  "emojis-list": "^3.0.0",
@@ -6564,10 +6557,9 @@
6564
6557
  }
6565
6558
  },
6566
6559
  "node_modules/loader-utils/node_modules/json5": {
6567
- "version": "1.0.1",
6568
- "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz",
6569
- "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==",
6570
- "license": "MIT",
6560
+ "version": "1.0.2",
6561
+ "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz",
6562
+ "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==",
6571
6563
  "dependencies": {
6572
6564
  "minimist": "^1.2.0"
6573
6565
  },
@@ -6984,10 +6976,9 @@
6984
6976
  "license": "MIT"
6985
6977
  },
6986
6978
  "node_modules/minimatch": {
6987
- "version": "3.0.4",
6988
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
6989
- "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
6990
- "license": "ISC",
6979
+ "version": "3.1.2",
6980
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
6981
+ "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
6991
6982
  "dependencies": {
6992
6983
  "brace-expansion": "^1.1.7"
6993
6984
  },
@@ -9919,10 +9910,9 @@
9919
9910
  }
9920
9911
  },
9921
9912
  "node_modules/sass-loader/node_modules/loader-utils": {
9922
- "version": "2.0.0",
9923
- "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.0.tgz",
9924
- "integrity": "sha512-rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ==",
9925
- "license": "MIT",
9913
+ "version": "2.0.4",
9914
+ "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz",
9915
+ "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==",
9926
9916
  "dependencies": {
9927
9917
  "big.js": "^5.2.2",
9928
9918
  "emojis-list": "^3.0.0",
@@ -16274,9 +16264,9 @@
16274
16264
  }
16275
16265
  },
16276
16266
  "decode-uri-component": {
16277
- "version": "0.2.0",
16278
- "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz",
16279
- "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU="
16267
+ "version": "0.2.2",
16268
+ "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.2.tgz",
16269
+ "integrity": "sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ=="
16280
16270
  },
16281
16271
  "default-gateway": {
16282
16272
  "version": "6.0.3",
@@ -16974,9 +16964,9 @@
16974
16964
  },
16975
16965
  "dependencies": {
16976
16966
  "loader-utils": {
16977
- "version": "2.0.0",
16978
- "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.0.tgz",
16979
- "integrity": "sha512-rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ==",
16967
+ "version": "2.0.4",
16968
+ "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz",
16969
+ "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==",
16980
16970
  "requires": {
16981
16971
  "big.js": "^5.2.2",
16982
16972
  "emojis-list": "^3.0.0",
@@ -18050,12 +18040,9 @@
18050
18040
  "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg=="
18051
18041
  },
18052
18042
  "json5": {
18053
- "version": "2.2.0",
18054
- "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz",
18055
- "integrity": "sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==",
18056
- "requires": {
18057
- "minimist": "^1.2.5"
18058
- }
18043
+ "version": "2.2.3",
18044
+ "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz",
18045
+ "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg=="
18059
18046
  },
18060
18047
  "kind-of": {
18061
18048
  "version": "3.2.2",
@@ -18096,9 +18083,9 @@
18096
18083
  "integrity": "sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw=="
18097
18084
  },
18098
18085
  "loader-utils": {
18099
- "version": "1.4.0",
18100
- "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz",
18101
- "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==",
18086
+ "version": "1.4.2",
18087
+ "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.2.tgz",
18088
+ "integrity": "sha512-I5d00Pd/jwMD2QCduo657+YM/6L3KZu++pmX9VFncxaxvHcru9jx1lBaFft+r4Mt2jK0Yhp41XlRAihzPxHNCg==",
18102
18089
  "requires": {
18103
18090
  "big.js": "^5.2.2",
18104
18091
  "emojis-list": "^3.0.0",
@@ -18106,9 +18093,9 @@
18106
18093
  },
18107
18094
  "dependencies": {
18108
18095
  "json5": {
18109
- "version": "1.0.1",
18110
- "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz",
18111
- "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==",
18096
+ "version": "1.0.2",
18097
+ "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz",
18098
+ "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==",
18112
18099
  "requires": {
18113
18100
  "minimist": "^1.2.0"
18114
18101
  }
@@ -18413,9 +18400,9 @@
18413
18400
  "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo="
18414
18401
  },
18415
18402
  "minimatch": {
18416
- "version": "3.0.4",
18417
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
18418
- "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
18403
+ "version": "3.1.2",
18404
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
18405
+ "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
18419
18406
  "requires": {
18420
18407
  "brace-expansion": "^1.1.7"
18421
18408
  }
@@ -20626,9 +20613,9 @@
20626
20613
  },
20627
20614
  "dependencies": {
20628
20615
  "loader-utils": {
20629
- "version": "2.0.0",
20630
- "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.0.tgz",
20631
- "integrity": "sha512-rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ==",
20616
+ "version": "2.0.4",
20617
+ "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz",
20618
+ "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==",
20632
20619
  "requires": {
20633
20620
  "big.js": "^5.2.2",
20634
20621
  "emojis-list": "^3.0.0",
@@ -1 +1 @@
1
- 44c10d1e702ae7e3f4af6ad8684f30bfd32edcf9
1
+ 44c10d1e702ae7e3f4af6ad8684f30bfd32edcf9