isomorfeus-react 16.8.9 → 16.9.0

Sign up to get free protection for your applications and to get access to all the features.
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