stimulus-rails 0.5.0 → 0.5.4
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.
- checksums.yaml +4 -4
- data/README.md +2 -2
- data/app/assets/javascripts/stimulus-importmap-autoloader.js +1 -1
- data/app/assets/javascripts/stimulus.js +1701 -2
- data/app/assets/javascripts/{stimulus@3.0.0-beta.1.js → stimulus@3.0.0-beta.2.js} +9 -33
- data/lib/stimulus/manifest.rb +12 -8
- data/lib/stimulus/version.rb +1 -1
- metadata +3 -4
- data/app/assets/javascripts/stimulus@2.js +0 -1699
@@ -1,5 +1,5 @@
|
|
1
1
|
/*
|
2
|
-
Stimulus 3.0.0-beta.
|
2
|
+
Stimulus 3.0.0-beta.2
|
3
3
|
Copyright © 2021 Basecamp, LLC
|
4
4
|
*/
|
5
5
|
class EventListener {
|
@@ -166,7 +166,7 @@ function dasherize(value) {
|
|
166
166
|
return value.replace(/([A-Z])/g, (_, char) => `-${char.toLowerCase()}`);
|
167
167
|
}
|
168
168
|
function tokenize(value) {
|
169
|
-
return value.
|
169
|
+
return value.match(/[^\s]+/g) || [];
|
170
170
|
}
|
171
171
|
|
172
172
|
class Action {
|
@@ -1210,12 +1210,6 @@ class Context {
|
|
1210
1210
|
get parentElement() {
|
1211
1211
|
return this.element.parentElement;
|
1212
1212
|
}
|
1213
|
-
dispatch(eventName, { target = this.element, detail = {}, prefix = this.identifier, bubbles = true, cancelable = true } = {}) {
|
1214
|
-
const type = prefix ? `${prefix}:${eventName}` : eventName;
|
1215
|
-
const event = new CustomEvent(type, { detail, bubbles, cancelable });
|
1216
|
-
target.dispatchEvent(event);
|
1217
|
-
return event;
|
1218
|
-
}
|
1219
1213
|
handleError(error, message, detail = {}) {
|
1220
1214
|
const { identifier, controller, element } = this;
|
1221
1215
|
detail = Object.assign({ identifier, controller, element }, detail);
|
@@ -2026,33 +2020,15 @@ class Controller {
|
|
2026
2020
|
}
|
2027
2021
|
disconnect() {
|
2028
2022
|
}
|
2023
|
+
dispatch(eventName, { target = this.element, detail = {}, prefix = this.identifier, bubbles = true, cancelable = true } = {}) {
|
2024
|
+
const type = prefix ? `${prefix}:${eventName}` : eventName;
|
2025
|
+
const event = new CustomEvent(type, { detail, bubbles, cancelable });
|
2026
|
+
target.dispatchEvent(event);
|
2027
|
+
return event;
|
2028
|
+
}
|
2029
2029
|
}
|
2030
2030
|
Controller.blessings = [ClassPropertiesBlessing, TargetPropertiesBlessing, ValuePropertiesBlessing];
|
2031
2031
|
Controller.targets = [];
|
2032
2032
|
Controller.values = {};
|
2033
2033
|
|
2034
|
-
|
2035
|
-
return context.keys()
|
2036
|
-
.map(key => definitionForModuleWithContextAndKey(context, key))
|
2037
|
-
.filter(value => value);
|
2038
|
-
}
|
2039
|
-
function definitionForModuleWithContextAndKey(context, key) {
|
2040
|
-
const identifier = identifierForContextKey(key);
|
2041
|
-
if (identifier) {
|
2042
|
-
return definitionForModuleAndIdentifier(context(key), identifier);
|
2043
|
-
}
|
2044
|
-
}
|
2045
|
-
function definitionForModuleAndIdentifier(module, identifier) {
|
2046
|
-
const controllerConstructor = module.default;
|
2047
|
-
if (typeof controllerConstructor == "function") {
|
2048
|
-
return { identifier, controllerConstructor };
|
2049
|
-
}
|
2050
|
-
}
|
2051
|
-
function identifierForContextKey(key) {
|
2052
|
-
const logicalName = (key.match(/^(?:\.\/)?(.+)(?:[_-]controller\..+?)$/) || [])[1];
|
2053
|
-
if (logicalName) {
|
2054
|
-
return logicalName.replace(/_/g, "-").replace(/\//g, "--");
|
2055
|
-
}
|
2056
|
-
}
|
2057
|
-
|
2058
|
-
export { Application, AttributeObserver, Context, Controller, ElementObserver, IndexedMultimap, Multimap, StringMapObserver, TokenListObserver, ValueListObserver, add, defaultSchema, definitionsFromContext, del, fetch, identifierForContextKey, prune };
|
2034
|
+
export { Application, AttributeObserver, Context, Controller, ElementObserver, IndexedMultimap, Multimap, StringMapObserver, TokenListObserver, ValueListObserver, add, defaultSchema, del, fetch, prune };
|
data/lib/stimulus/manifest.rb
CHANGED
@@ -3,21 +3,25 @@ module Stimulus::Manifest
|
|
3
3
|
|
4
4
|
def generate_from(controllers_path)
|
5
5
|
extract_controllers_from(controllers_path).collect do |controller_path|
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
6
|
+
import_and_register_controller(controllers_path, controller_path)
|
7
|
+
end
|
8
|
+
end
|
9
|
+
|
10
|
+
def import_and_register_controller(controllers_path, controller_path)
|
11
|
+
module_path = controller_path.relative_path_from(controllers_path).to_s.remove(".js")
|
12
|
+
controller_class_name = module_path.camelize.gsub(/::/, "__")
|
13
|
+
tag_name = module_path.remove("_controller").gsub(/_/, "-").gsub(/\//, "--")
|
14
|
+
|
15
|
+
<<-JS
|
11
16
|
|
12
17
|
import #{controller_class_name} from "./#{module_path}"
|
13
18
|
application.register("#{tag_name}", #{controller_class_name})
|
14
|
-
|
15
|
-
end
|
19
|
+
JS
|
16
20
|
end
|
17
21
|
|
18
22
|
def extract_controllers_from(directory)
|
19
23
|
(directory.children.select { |e| e.to_s =~ /_controller.js$/ } +
|
20
24
|
directory.children.select(&:directory?).collect { |d| extract_controllers_from(d) }
|
21
|
-
).flatten
|
25
|
+
).flatten.sort
|
22
26
|
end
|
23
27
|
end
|
data/lib/stimulus/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: stimulus-rails
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.5.
|
4
|
+
version: 0.5.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Sam Stephenson
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2021-09-
|
13
|
+
date: 2021-09-19 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: rails
|
@@ -38,8 +38,7 @@ files:
|
|
38
38
|
- app/assets/javascripts/stimulus-autoloader.js
|
39
39
|
- app/assets/javascripts/stimulus-importmap-autoloader.js
|
40
40
|
- app/assets/javascripts/stimulus.js
|
41
|
-
- app/assets/javascripts/stimulus@2.js
|
42
|
-
- app/assets/javascripts/stimulus@3.0.0-beta.1.js
|
41
|
+
- app/assets/javascripts/stimulus@3.0.0-beta.2.js
|
43
42
|
- lib/generators/stimulus/USAGE
|
44
43
|
- lib/generators/stimulus/stimulus_generator.rb
|
45
44
|
- lib/generators/stimulus/templates/controller.js.tt
|