isomorfeus-react 16.8.9 → 16.9.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 (54) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +0 -1
  3. data/lib/browser/delegate_native.rb +70 -0
  4. data/lib/browser/element.rb +176 -0
  5. data/lib/browser/element/canvas.rb +17 -0
  6. data/lib/browser/element/media.rb +78 -0
  7. data/lib/browser/event.rb +92 -0
  8. data/lib/browser/event_target.rb +39 -0
  9. data/lib/browser/file_list.rb +125 -0
  10. data/lib/browser/iterable.rb +15 -0
  11. data/lib/isomorfeus-react-material-ui.rb +1 -31
  12. data/lib/isomorfeus-react.rb +112 -5
  13. data/lib/isomorfeus/execution_environment.rb +8 -2
  14. data/lib/isomorfeus/top_level_browser.rb +1 -1
  15. data/lib/lucid_app/mixin.rb +1 -1
  16. data/lib/lucid_component/app_store_defaults.rb +36 -0
  17. data/lib/lucid_component/app_store_proxy.rb +40 -0
  18. data/lib/lucid_component/class_store_proxy.rb +43 -0
  19. data/lib/lucid_component/component_class_store_defaults.rb +38 -0
  20. data/lib/lucid_component/component_instance_store_defaults.rb +35 -0
  21. data/lib/lucid_component/initializer.rb +3 -3
  22. data/lib/lucid_component/instance_store_proxy.rb +47 -0
  23. data/lib/lucid_component/mixin.rb +1 -1
  24. data/lib/lucid_component/reducers.rb +46 -0
  25. data/lib/lucid_component/store_api.rb +38 -0
  26. data/lib/lucid_material/app/mixin.rb +1 -1
  27. data/lib/lucid_material/component/mixin.rb +1 -1
  28. data/lib/react.rb +1 -2
  29. data/lib/react/component/api.rb +4 -0
  30. data/lib/react/component/features.rb +5 -1
  31. data/lib/react/component/mixin.rb +1 -1
  32. data/lib/react/component/props.rb +1 -1
  33. data/lib/react/function_component/api.rb +5 -25
  34. data/lib/react/pure_component/mixin.rb +1 -1
  35. data/lib/react/synthetic_event.rb +3 -3
  36. data/lib/react/version.rb +1 -1
  37. data/lib/react_dom.rb +1 -1
  38. metadata +22 -36
  39. data/lib/isomorfeus-react-base.rb +0 -57
  40. data/lib/isomorfeus-react-component.rb +0 -20
  41. data/lib/isomorfeus-react-lucid.rb +0 -39
  42. data/lib/isomorfeus-react-redux-component.rb +0 -25
  43. data/lib/react/redux_component/api.rb +0 -40
  44. data/lib/react/redux_component/app_store_defaults.rb +0 -38
  45. data/lib/react/redux_component/app_store_proxy.rb +0 -43
  46. data/lib/react/redux_component/base.rb +0 -9
  47. data/lib/react/redux_component/class_store_proxy.rb +0 -46
  48. data/lib/react/redux_component/component_class_store_defaults.rb +0 -40
  49. data/lib/react/redux_component/component_instance_store_defaults.rb +0 -37
  50. data/lib/react/redux_component/initializer.rb +0 -14
  51. data/lib/react/redux_component/instance_store_proxy.rb +0 -50
  52. data/lib/react/redux_component/mixin.rb +0 -19
  53. data/lib/react/redux_component/native_component_constructor.rb +0 -144
  54. data/lib/react/redux_component/reducers.rb +0 -48
data/lib/react/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module React
2
- VERSION = '16.8.9'
2
+ VERSION = '16.9.0'
3
3
  end
data/lib/react_dom.rb CHANGED
@@ -36,7 +36,7 @@ module ReactDOM
36
36
  def unmount_component_at_node(element_or_query)
37
37
  if `(typeof element_or_query === 'string')` || (`(typeof element_or_query.$class === 'function')` && element_or_query.class == String)
38
38
  element = `document.body.querySelector(element_or_query)`
39
- elsif `(typeof element_or_query.$is_a === 'function')` && element_or_query.is_a?(Browser::DOM::Node)
39
+ elsif `(typeof element_or_query.$is_a === 'function')` && element_or_query.is_a?(Browser::Element)
40
40
  element = element_or_query.to_n
41
41
  else
42
42
  element = element_or_query
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: isomorfeus-react
3
3
  version: !ruby/object:Gem::Version
4
- version: 16.8.9
4
+ version: 16.9.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jan Biedermann
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-07-28 00:00:00.000000000 Z
11
+ date: 2019-08-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: oj
@@ -44,14 +44,14 @@ dependencies:
44
44
  requirements:
45
45
  - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: 0.3.1
47
+ version: 0.3.3
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: 0.3.1
54
+ version: 0.3.3
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: opal-autoloader
57
57
  requirement: !ruby/object:Gem::Requirement
@@ -66,20 +66,6 @@ dependencies:
66
66
  - - "~>"
67
67
  - !ruby/object:Gem::Version
68
68
  version: 0.1.0
69
- - !ruby/object:Gem::Dependency
70
- name: opal-browser
71
- requirement: !ruby/object:Gem::Requirement
72
- requirements:
73
- - - "~>"
74
- - !ruby/object:Gem::Version
75
- version: 0.2.0
76
- type: :runtime
77
- prerelease: false
78
- version_requirements: !ruby/object:Gem::Requirement
79
- requirements:
80
- - - "~>"
81
- - !ruby/object:Gem::Version
82
- version: 0.2.0
83
69
  - !ruby/object:Gem::Dependency
84
70
  name: opal-webpack-loader
85
71
  requirement: !ruby/object:Gem::Requirement
@@ -100,14 +86,14 @@ dependencies:
100
86
  requirements:
101
87
  - - "~>"
102
88
  - !ruby/object:Gem::Version
103
- version: 4.0.8
89
+ version: 4.0.9
104
90
  type: :runtime
105
91
  prerelease: false
106
92
  version_requirements: !ruby/object:Gem::Requirement
107
93
  requirements:
108
94
  - - "~>"
109
95
  - !ruby/object:Gem::Version
110
- version: 4.0.8
96
+ version: 4.0.9
111
97
  - !ruby/object:Gem::Dependency
112
98
  name: isomorfeus-speednode
113
99
  requirement: !ruby/object:Gem::Requirement
@@ -172,11 +158,15 @@ extensions: []
172
158
  extra_rdoc_files: []
173
159
  files:
174
160
  - README.md
175
- - lib/isomorfeus-react-base.rb
176
- - lib/isomorfeus-react-component.rb
177
- - lib/isomorfeus-react-lucid.rb
161
+ - lib/browser/delegate_native.rb
162
+ - lib/browser/element.rb
163
+ - lib/browser/element/canvas.rb
164
+ - lib/browser/element/media.rb
165
+ - lib/browser/event.rb
166
+ - lib/browser/event_target.rb
167
+ - lib/browser/file_list.rb
168
+ - lib/browser/iterable.rb
178
169
  - lib/isomorfeus-react-material-ui.rb
179
- - lib/isomorfeus-react-redux-component.rb
180
170
  - lib/isomorfeus-react.rb
181
171
  - lib/isomorfeus/config.rb
182
172
  - lib/isomorfeus/execution_environment.rb
@@ -189,11 +179,19 @@ files:
189
179
  - lib/lucid_app/mixin.rb
190
180
  - lib/lucid_app/native_component_constructor.rb
191
181
  - lib/lucid_component/api.rb
182
+ - lib/lucid_component/app_store_defaults.rb
183
+ - lib/lucid_component/app_store_proxy.rb
192
184
  - lib/lucid_component/base.rb
185
+ - lib/lucid_component/class_store_proxy.rb
186
+ - lib/lucid_component/component_class_store_defaults.rb
187
+ - lib/lucid_component/component_instance_store_defaults.rb
193
188
  - lib/lucid_component/event_handler.rb
194
189
  - lib/lucid_component/initializer.rb
190
+ - lib/lucid_component/instance_store_proxy.rb
195
191
  - lib/lucid_component/mixin.rb
196
192
  - lib/lucid_component/native_component_constructor.rb
193
+ - lib/lucid_component/reducers.rb
194
+ - lib/lucid_component/store_api.rb
197
195
  - lib/lucid_material/app/base.rb
198
196
  - lib/lucid_material/app/mixin.rb
199
197
  - lib/lucid_material/app/native_component_constructor.rb
@@ -236,18 +234,6 @@ files:
236
234
  - lib/react/native_constant_wrapper.rb
237
235
  - lib/react/pure_component/base.rb
238
236
  - lib/react/pure_component/mixin.rb
239
- - lib/react/redux_component/api.rb
240
- - lib/react/redux_component/app_store_defaults.rb
241
- - lib/react/redux_component/app_store_proxy.rb
242
- - lib/react/redux_component/base.rb
243
- - lib/react/redux_component/class_store_proxy.rb
244
- - lib/react/redux_component/component_class_store_defaults.rb
245
- - lib/react/redux_component/component_instance_store_defaults.rb
246
- - lib/react/redux_component/initializer.rb
247
- - lib/react/redux_component/instance_store_proxy.rb
248
- - lib/react/redux_component/mixin.rb
249
- - lib/react/redux_component/native_component_constructor.rb
250
- - lib/react/redux_component/reducers.rb
251
237
  - lib/react/ref.rb
252
238
  - lib/react/synthetic_event.rb
253
239
  - lib/react/version.rb
@@ -1,57 +0,0 @@
1
- require 'opal'
2
- require 'opal-autoloader'
3
- require 'native'
4
- require 'active_support/core_ext/string'
5
- require 'react/active_support_support'
6
- require 'isomorfeus/execution_environment'
7
- if Isomorfeus.on_browser?
8
- require 'browser/support'
9
- require 'browser/event'
10
- require 'browser/event_source'
11
- require 'browser/screen'
12
- require 'browser/socket'
13
- require 'browser/window'
14
- require 'browser/dom/node'
15
- require 'browser/dom/element'
16
- end
17
- require 'isomorfeus-redux'
18
- require 'isomorfeus/config'
19
-
20
- # allow mounting of components
21
- if Isomorfeus.on_browser?
22
- require 'isomorfeus/top_level_browser'
23
- else
24
- require 'isomorfeus/top_level_ssr'
25
- end
26
-
27
- # react
28
- require 'react/version'
29
- require 'react'
30
- require 'react/synthetic_event'
31
- require 'react/ref'
32
- require 'react/children'
33
- if Isomorfeus.on_browser?
34
- require 'react_dom'
35
- else
36
- require 'react_dom_server'
37
- end
38
- # props
39
- require 'react/component/props'
40
- # HTML Elements support
41
- require 'react/component/elements'
42
- # React Features
43
- require 'react/component/features'
44
- require 'react/context_wrapper'
45
- require 'react/native_constant_wrapper'
46
- # Function Component
47
- require 'react/function_component/resolution'
48
- require 'react/function_component/api'
49
- require 'react/function_component/event_handler'
50
- require 'react/function_component/creator'
51
- require 'react/function_component/mixin'
52
- require 'react/function_component/base'
53
- require 'react/memo_component/creator'
54
- require 'react/memo_component/mixin'
55
- require 'react/memo_component/base'
56
-
57
- Opal::Autoloader.add_load_path('components')
@@ -1,20 +0,0 @@
1
- require 'isomorfeus-react-base'
2
- # React::Component
3
- require 'react/component/api'
4
- require 'react/component/callbacks'
5
- require 'react/component/unsafe_api'
6
- require 'react/component/initializer'
7
- require 'react/component/native_component_constructor'
8
- require 'react/component/native_component_validate_prop'
9
- require 'react/component/state'
10
- require 'react/component/match'
11
- require 'react/component/location'
12
- require 'react/component/history'
13
- require 'react/component/resolution'
14
- require 'react/component/should_component_update'
15
- require 'react/component/event_handler'
16
- require 'react/component/mixin'
17
- require 'react/component/base'
18
- # React::PureComponent
19
- require 'react/pure_component/mixin'
20
- require 'react/pure_component/base'
@@ -1,39 +0,0 @@
1
- require 'isomorfeus-react-base'
2
-
3
- # basics
4
- require 'react/component/native_component_validate_prop'
5
- require 'react/component/event_handler'
6
- require 'react/component/api'
7
- require 'react/component/callbacks'
8
- require 'react/component/resolution'
9
- require 'react/component/state'
10
- require 'react/component/should_component_update'
11
- require 'react/redux_component/api'
12
- require 'react/redux_component/app_store_defaults'
13
- require 'react/redux_component/component_class_store_defaults'
14
- require 'react/redux_component/component_instance_store_defaults'
15
- require 'react/redux_component/app_store_proxy'
16
- require 'react/redux_component/class_store_proxy'
17
- require 'react/redux_component/instance_store_proxy'
18
- require 'react/redux_component/reducers'
19
-
20
- # init component reducers
21
- React::ReduxComponent::Reducers.add_component_reducers_to_store
22
-
23
- # init LucidApplicationContext (Store Provider and Consumer)
24
- require 'lucid_app/context'
25
- LucidApp::Context.create_application_context
26
-
27
- # LucidComponent
28
- require 'lucid_component/api'
29
- require 'lucid_component/initializer'
30
- require 'lucid_component/native_component_constructor'
31
- require 'lucid_component/event_handler'
32
- require 'lucid_component/mixin'
33
- require 'lucid_component/base'
34
-
35
- # LucidApp
36
- require 'lucid_app/api'
37
- require 'lucid_app/native_component_constructor'
38
- require 'lucid_app/mixin'
39
- require 'lucid_app/base'
@@ -1,25 +0,0 @@
1
- require 'isomorfeus-react-base'
2
- # Component basics
3
- require 'react/component/native_component_validate_prop'
4
- require 'react/component/event_handler'
5
- require 'react/component/api'
6
- require 'react/component/callbacks'
7
- require 'react/component/resolution'
8
- require 'react/component/state'
9
- require 'react/component/should_component_update'
10
- # Redux::Component
11
- require 'react/redux_component/component_class_store_defaults'
12
- require 'react/redux_component/component_instance_store_defaults'
13
- require 'react/redux_component/app_store_defaults'
14
- require 'react/redux_component/api'
15
- require 'react/redux_component/initializer'
16
- require 'react/redux_component/app_store_proxy'
17
- require 'react/redux_component/class_store_proxy'
18
- require 'react/redux_component/instance_store_proxy'
19
- require 'react/redux_component/native_component_constructor'
20
- require 'react/redux_component/mixin'
21
- require 'react/redux_component/base'
22
- require 'react/redux_component/reducers'
23
-
24
- # init component reducers
25
- React::ReduxComponent::Reducers.add_component_reducers_to_store
@@ -1,40 +0,0 @@
1
- module React
2
- module ReduxComponent
3
- module API
4
- def self.included(base)
5
- base.instance_exec do
6
- attr_accessor :app_store
7
- attr_accessor :class_store
8
- attr_accessor :store
9
-
10
- def default_app_store_defined
11
- @default_app_store_defined
12
- end
13
-
14
- def default_class_store_defined
15
- @default_class_store_defined
16
- end
17
-
18
- def default_instance_store_defined
19
- @default_instance_store_defined
20
- end
21
-
22
- def app_store
23
- @default_app_store_defined = true
24
- @default_app_store ||= ::React::ReduxComponent::AppStoreDefaults.new(state, self.to_s)
25
- end
26
-
27
- def class_store
28
- @default_class_store_defined = true
29
- @default_class_store ||= ::React::ReduxComponent::ComponentClassStoreDefaults.new(state, self.to_s)
30
- end
31
-
32
- def store
33
- @default_instance_store_defined = true
34
- @default_instance_store ||= ::React::ReduxComponent::ComponentInstanceStoreDefaults.new(state, self.to_s)
35
- end
36
- end
37
- end
38
- end
39
- end
40
- end
@@ -1,38 +0,0 @@
1
- module React
2
- module ReduxComponent
3
- class AppStoreDefaults
4
- def initialize(state, component_name)
5
- @state = state
6
- if @state.isomorfeus_store
7
- @state.isomorfeus_store.merge!(application_state: {})
8
- else
9
- @state.isomorfeus_store = { application_state: {}}
10
- end
11
- end
12
-
13
- def method_missing(key, *args, &block)
14
- if `args.length > 0`
15
- # set initial class state
16
- key = key.chop if `key.endsWith('=')`
17
- @state.isomorfeus_store[:application_state][key] = args[0]
18
- current_state = Isomorfeus.store.get_state
19
- if !(current_state[:application_state].key?(key))
20
- Isomorfeus.store.dispatch(type: 'APPLICATION_STATE', name: key, value: args[0])
21
- end
22
- else
23
- # get class state
24
-
25
- # check if we have a component local state value
26
- if @state.isomorfeus_store[:application_state].key?(key)
27
- return @state.isomorfeus_store[:application_state][key]
28
- end
29
- end
30
- nil
31
- end
32
-
33
- def to_h
34
- @state.isomorfeus_store[:application_state]
35
- end
36
- end
37
- end
38
- end
@@ -1,43 +0,0 @@
1
- module React
2
- module ReduxComponent
3
- class AppStoreProxy
4
-
5
- def initialize(component_instance, access_key = 'state')
6
- @native_component_instance = component_instance.to_n
7
- @component_instance = component_instance
8
- @access_key = access_key
9
- end
10
-
11
- def method_missing(key, *args, &block)
12
- @native_component_instance.JS.register_used_store_path(['application_state', key])
13
- if `args.length > 0`
14
- # set class state, simply a dispatch
15
- action = { type: 'APPLICATION_STATE', name: (`key.endsWith('=')` ? key.chop : key), value: args[0] }
16
- Isomorfeus.store.dispatch(action)
17
- else
18
- # check if we have a component local state value
19
- if `this.native_component_instance[this.access_key]["isomorfeus_store"]["application_state"].hasOwnProperty(key)`
20
- return @native_component_instance.JS[@access_key].JS[:isomorfeus_store].JS[:application_state].JS[key]
21
- elsif @component_instance.class.default_app_store_defined && @component_instance.class.app_store.to_h.key?(key)
22
- # check if a default value was given
23
- return @component_instance.class.app_store.to_h[key]
24
- end
25
- # otherwise return nil
26
- return nil
27
- end
28
- end
29
-
30
- def dispatch(action)
31
- Isomorfeus.store.dispatch(action)
32
- end
33
-
34
- def subscribe(&block)
35
- Isomorfeus.store.subscribe(&block)
36
- end
37
-
38
- def unsubscribe(unsubscriber)
39
- `unsubscriber()`
40
- end
41
- end
42
- end
43
- end
@@ -1,9 +0,0 @@
1
- module React
2
- module ReduxComponent
3
- class Base
4
- def self.inherited(base)
5
- base.include(::React::ReduxComponent::Mixin)
6
- end
7
- end
8
- end
9
- end
@@ -1,46 +0,0 @@
1
- module React
2
- module ReduxComponent
3
- class ClassStoreProxy
4
-
5
- def initialize(component_instance, access_key = 'state')
6
- @native_component_instance = component_instance.to_n
7
- @component_instance = component_instance
8
- @component_name = component_instance.class.to_s
9
- @access_key = access_key
10
- end
11
-
12
- def method_missing(key, *args, &block)
13
- @native_component_instance.JS.register_used_store_path(['component_class_state', @component_name, key])
14
- if `args.length > 0`
15
- # set class state, simply a dispatch
16
- action = { type: 'COMPONENT_CLASS_STATE', class: @component_name, name: (`key.endsWith('=')` ? key.chop : key), value: args[0] }
17
- Isomorfeus.store.dispatch(action)
18
- else
19
- # get class state
20
- # check if we have a component local state value
21
- if @native_component_instance.JS[@access_key].JS[:isomorfeus_store].JS[:component_class_state].JS[@component_name] &&
22
- @native_component_instance.JS[@access_key].JS[:isomorfeus_store].JS[:component_class_state].JS[@component_name].JS.hasOwnProperty(key)
23
- return @native_component_instance.JS[@access_key].JS[:isomorfeus_store].JS[:component_class_state].JS[@component_name].JS[key]
24
- elsif @component_instance.class.default_class_store_defined && @component_instance.class.class_store.to_h.key?(key)
25
- # check if a default value was given
26
- return @component_instance.class.class_store.to_h[key]
27
- end
28
- # otherwise return nil
29
- return nil
30
- end
31
- end
32
-
33
- def dispatch(action)
34
- Isomorfeus.store.dispatch(action)
35
- end
36
-
37
- def subscribe(&block)
38
- Isomorfeus.store.subscribe(&block)
39
- end
40
-
41
- def unsubscribe(unsubscriber)
42
- `unsubscriber()`
43
- end
44
- end
45
- end
46
- end