matestack-ui-core 0.6.0 → 0.7.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.

Potentially problematic release.


This version of matestack-ui-core might be problematic. Click here for more details.

Files changed (173) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +18 -12
  3. data/app/concepts/{absolute/view → matestack/ui/core/absolute}/absolute.haml +0 -0
  4. data/app/concepts/{absolute/cell → matestack/ui/core/absolute}/absolute.rb +2 -2
  5. data/app/concepts/matestack/ui/core/action/action.haml +3 -0
  6. data/app/concepts/{action/js → matestack/ui/core/action}/action.js +3 -3
  7. data/app/concepts/{action/cell → matestack/ui/core/action}/action.rb +2 -2
  8. data/app/concepts/{app/view → matestack/ui/core/app}/app.haml +1 -1
  9. data/app/concepts/{app/js → matestack/ui/core/app}/app.js +1 -1
  10. data/app/concepts/{app/cell → matestack/ui/core/app}/app.rb +28 -5
  11. data/app/concepts/{app/js → matestack/ui/core/app}/store.js +1 -1
  12. data/app/concepts/{async/view → matestack/ui/core/async}/async.haml +0 -0
  13. data/app/concepts/{async/js → matestack/ui/core/async}/async.js +3 -3
  14. data/app/concepts/matestack/ui/core/async/async.rb +10 -0
  15. data/app/concepts/{br/view → matestack/ui/core/br}/br.haml +2 -2
  16. data/app/concepts/matestack/ui/core/br/br.rb +5 -0
  17. data/app/concepts/{button/view → matestack/ui/core/button}/button.haml +0 -0
  18. data/app/concepts/matestack/ui/core/button/button.rb +5 -0
  19. data/app/concepts/matestack/ui/core/component/anonym-dynamic-component.js +10 -0
  20. data/app/concepts/{component/view → matestack/ui/core/component}/children.haml +0 -0
  21. data/app/concepts/{component/js → matestack/ui/core/component}/component.js +1 -1
  22. data/app/concepts/{component/view → matestack/ui/core/component}/dynamic.haml +0 -0
  23. data/app/concepts/{component/cell → matestack/ui/core/component}/dynamic.rb +51 -13
  24. data/app/concepts/{component/view → matestack/ui/core/component}/dynamic_without_rerender.haml +0 -0
  25. data/app/concepts/{component/view → matestack/ui/core/component}/response.haml +0 -0
  26. data/app/concepts/{component/view → matestack/ui/core/component}/response_dynamic.haml +0 -0
  27. data/app/concepts/{component/view → matestack/ui/core/component}/response_dynamic_without_rerender.haml +0 -0
  28. data/app/concepts/{component/view → matestack/ui/core/component}/static.haml +0 -0
  29. data/app/concepts/{component/cell → matestack/ui/core/component}/static.rb +3 -3
  30. data/app/concepts/{div/view → matestack/ui/core/div}/div.haml +0 -0
  31. data/app/concepts/matestack/ui/core/div/div.rb +6 -0
  32. data/app/concepts/{footer/view → matestack/ui/core/footer}/footer.haml +0 -0
  33. data/app/concepts/matestack/ui/core/footer/footer.rb +5 -0
  34. data/app/concepts/{form/view → matestack/ui/core/form}/form.haml +0 -0
  35. data/app/concepts/{form/js → matestack/ui/core/form}/form.js +3 -3
  36. data/app/concepts/{form/cell → matestack/ui/core/form}/form.rb +2 -2
  37. data/app/concepts/{form/view → matestack/ui/core/form/inline}/inline.haml +0 -0
  38. data/app/concepts/matestack/ui/core/form/inline/inline.rb +9 -0
  39. data/app/concepts/{form/view → matestack/ui/core/form/input}/input.haml +0 -0
  40. data/app/concepts/{form/cell → matestack/ui/core/form/input}/input.rb +2 -2
  41. data/app/concepts/{form/view → matestack/ui/core/form/select}/select.haml +0 -0
  42. data/app/concepts/{form/cell → matestack/ui/core/form/select}/select.rb +2 -2
  43. data/app/concepts/{form/view → matestack/ui/core/form/submit}/submit.haml +0 -0
  44. data/app/concepts/matestack/ui/core/form/submit/submit.rb +9 -0
  45. data/app/concepts/{header/view → matestack/ui/core/header}/header.haml +0 -0
  46. data/app/concepts/matestack/ui/core/header/header.rb +5 -0
  47. data/app/concepts/{heading/view → matestack/ui/core/heading}/heading.haml +0 -0
  48. data/app/concepts/matestack/ui/core/heading/heading.rb +5 -0
  49. data/app/concepts/matestack/ui/core/hr/hr.haml +1 -0
  50. data/app/concepts/matestack/ui/core/hr/hr.rb +5 -0
  51. data/app/concepts/{html/view → matestack/ui/core/html}/html.haml +0 -0
  52. data/app/concepts/matestack/ui/core/html/html.js +10 -0
  53. data/app/concepts/{html/cell → matestack/ui/core/html}/html.rb +2 -2
  54. data/app/concepts/{icon/view → matestack/ui/core/icon}/icon.haml +0 -0
  55. data/app/concepts/matestack/ui/core/icon/icon.rb +5 -0
  56. data/app/concepts/{img/view → matestack/ui/core/img}/img.haml +0 -0
  57. data/app/concepts/matestack/ui/core/img/img.rb +5 -0
  58. data/app/concepts/{input/view → matestack/ui/core/input}/input.haml +0 -0
  59. data/app/concepts/matestack/ui/core/input/input.rb +5 -0
  60. data/app/concepts/matestack/ui/core/js/core.js +27 -0
  61. data/app/concepts/{core → matestack/ui/core}/js/event-hub.js +0 -0
  62. data/app/concepts/{label/view → matestack/ui/core/label}/label.haml +0 -0
  63. data/app/concepts/matestack/ui/core/label/label.rb +5 -0
  64. data/app/concepts/{li/view → matestack/ui/core/li}/li.haml +0 -0
  65. data/app/concepts/matestack/ui/core/li/li.rb +5 -0
  66. data/app/concepts/{link/view → matestack/ui/core/link}/link.haml +0 -0
  67. data/app/concepts/{link/cell → matestack/ui/core/link}/link.rb +2 -2
  68. data/app/concepts/{main/view → matestack/ui/core/main}/main.haml +0 -0
  69. data/app/concepts/matestack/ui/core/main/main.rb +5 -0
  70. data/app/concepts/{nav/view → matestack/ui/core/nav}/nav.haml +0 -0
  71. data/app/concepts/matestack/ui/core/nav/nav.rb +5 -0
  72. data/app/concepts/matestack/ui/core/ol/ol.haml +3 -0
  73. data/app/concepts/matestack/ui/core/ol/ol.rb +5 -0
  74. data/app/concepts/{onclick/view → matestack/ui/core/onclick}/onclick.haml +0 -0
  75. data/app/concepts/{onclick/js → matestack/ui/core/onclick}/onclick.js +3 -3
  76. data/app/concepts/matestack/ui/core/onclick/onclick.rb +6 -0
  77. data/app/concepts/{page/view → matestack/ui/core/page}/content.haml +0 -0
  78. data/app/concepts/{page/js → matestack/ui/core/page}/content.js +2 -2
  79. data/app/concepts/matestack/ui/core/page/content.rb +5 -0
  80. data/app/concepts/{page/view → matestack/ui/core/page}/page.haml +0 -0
  81. data/app/concepts/{page/cell → matestack/ui/core/page}/page.rb +28 -6
  82. data/app/concepts/{pg/view/pg.haml → matestack/ui/core/paragraph/paragraph.haml} +0 -0
  83. data/app/concepts/matestack/ui/core/paragraph/paragraph.rb +5 -0
  84. data/app/concepts/{partial/view → matestack/ui/core/partial}/partial.haml +0 -0
  85. data/app/concepts/matestack/ui/core/partial/partial.rb +5 -0
  86. data/app/concepts/matestack/ui/core/pg/pg.haml +8 -0
  87. data/app/concepts/matestack/ui/core/pg/pg.rb +5 -0
  88. data/app/concepts/matestack/ui/core/plain/plain.rb +10 -0
  89. data/app/concepts/matestack/ui/core/progress/progress.haml +3 -0
  90. data/app/concepts/matestack/ui/core/progress/progress.rb +14 -0
  91. data/app/concepts/{section/view → matestack/ui/core/section}/section.haml +0 -0
  92. data/app/concepts/matestack/ui/core/section/section.rb +5 -0
  93. data/app/concepts/{slot/view → matestack/ui/core/slot}/slot.haml +0 -0
  94. data/app/concepts/matestack/ui/core/slot/slot.rb +5 -0
  95. data/app/concepts/{span/view → matestack/ui/core/span}/span.haml +0 -0
  96. data/app/concepts/matestack/ui/core/span/span.rb +5 -0
  97. data/app/concepts/matestack/ui/core/table/table.haml +3 -0
  98. data/app/concepts/matestack/ui/core/table/table.rb +5 -0
  99. data/app/concepts/matestack/ui/core/td/td.haml +8 -0
  100. data/app/concepts/matestack/ui/core/td/td.rb +5 -0
  101. data/app/concepts/matestack/ui/core/th/th.haml +8 -0
  102. data/app/concepts/matestack/ui/core/th/th.rb +5 -0
  103. data/app/concepts/matestack/ui/core/time/time.haml +3 -0
  104. data/app/concepts/matestack/ui/core/time/time.rb +11 -0
  105. data/app/concepts/matestack/ui/core/tr/tr.haml +3 -0
  106. data/app/concepts/matestack/ui/core/tr/tr.rb +5 -0
  107. data/app/concepts/{transition/view → matestack/ui/core/transition}/transition.haml +0 -0
  108. data/app/concepts/{transition/js → matestack/ui/core/transition}/transition.js +2 -2
  109. data/app/concepts/{transition/cell → matestack/ui/core/transition}/transition.rb +2 -2
  110. data/app/concepts/{ul/view → matestack/ui/core/ul}/ul.haml +0 -0
  111. data/app/concepts/matestack/ui/core/ul/ul.rb +5 -0
  112. data/app/concepts/{view → matestack/ui/core}/view/view.haml +0 -0
  113. data/app/concepts/{view/js → matestack/ui/core/view}/view.js +3 -3
  114. data/app/concepts/matestack/ui/core/view/view.rb +7 -0
  115. data/app/lib/matestack/ui/app.rb +1 -0
  116. data/app/{concepts/app/utils → lib/matestack/ui/core}/app_node.rb +1 -1
  117. data/app/{concepts/component/utils → lib/matestack/ui/core}/component_node.rb +1 -1
  118. data/app/{concepts/page/utils → lib/matestack/ui/core}/page_node.rb +1 -1
  119. data/app/{concepts/shared/utils → lib/matestack/ui/core}/to_cell.rb +26 -25
  120. data/app/lib/matestack/ui/dynamic_component.rb +1 -0
  121. data/app/lib/matestack/ui/page.rb +1 -0
  122. data/app/lib/matestack/ui/static_component.rb +1 -0
  123. data/lib/matestack/ui/core/version.rb +1 -1
  124. data/vendor/assets/javascripts/matestack-ui-core.js +117 -117
  125. data/vendor/assets/javascripts/matestack-ui-core.js.map +1 -1
  126. metadata +125 -120
  127. data/app/assets/config/basemate_ui_core_manifest.js +0 -2
  128. data/app/assets/javascripts/basemate/ui/core/application.js +0 -15
  129. data/app/assets/stylesheets/basemate/ui/core/application.css +0 -15
  130. data/app/concepts/action/view/action.haml +0 -3
  131. data/app/concepts/async/cell/async.rb +0 -10
  132. data/app/concepts/br/cell/br.rb +0 -5
  133. data/app/concepts/button/cell/button.rb +0 -5
  134. data/app/concepts/component/js/anonym-dynamic-component.js +0 -10
  135. data/app/concepts/core/js/core.js +0 -27
  136. data/app/concepts/div/cell/div.rb +0 -6
  137. data/app/concepts/footer/cell/footer.rb +0 -5
  138. data/app/concepts/form/cell/inline.rb +0 -9
  139. data/app/concepts/form/cell/submit.rb +0 -9
  140. data/app/concepts/header/cell/header.rb +0 -5
  141. data/app/concepts/heading/cell/heading.rb +0 -5
  142. data/app/concepts/html/js/html.js +0 -10
  143. data/app/concepts/icon/cell/icon.rb +0 -5
  144. data/app/concepts/img/cell/img.rb +0 -5
  145. data/app/concepts/input/cell/input.rb +0 -5
  146. data/app/concepts/label/cell/label.rb +0 -5
  147. data/app/concepts/li/cell/li.rb +0 -5
  148. data/app/concepts/main/cell/main.rb +0 -5
  149. data/app/concepts/nav/cell/nav.rb +0 -5
  150. data/app/concepts/ol/cell/ol.rb +0 -5
  151. data/app/concepts/ol/view/ol.haml +0 -3
  152. data/app/concepts/onclick/cell/onclick.rb +0 -6
  153. data/app/concepts/page/cell/content.rb +0 -5
  154. data/app/concepts/partial/cell/partial.rb +0 -5
  155. data/app/concepts/pg/cell/pg.rb +0 -5
  156. data/app/concepts/plain/cell/plain.rb +0 -10
  157. data/app/concepts/progress/cell/progress.rb +0 -5
  158. data/app/concepts/progress/view/progress.haml +0 -3
  159. data/app/concepts/section/cell/section.rb +0 -5
  160. data/app/concepts/slot/cell/slot.rb +0 -10
  161. data/app/concepts/span/cell/span.rb +0 -5
  162. data/app/concepts/table/cell/table.rb +0 -5
  163. data/app/concepts/table/view/table.haml +0 -3
  164. data/app/concepts/td/cell/td.rb +0 -5
  165. data/app/concepts/td/view/td.haml +0 -8
  166. data/app/concepts/th/cell/th.rb +0 -5
  167. data/app/concepts/th/view/th.haml +0 -8
  168. data/app/concepts/tr/cell/tr.rb +0 -5
  169. data/app/concepts/tr/view/tr.haml +0 -3
  170. data/app/concepts/ul/cell/ul.rb +0 -5
  171. data/app/concepts/view/cell/view.rb +0 -7
  172. data/app/controllers/basemate/ui/core/application_controller.rb +0 -9
  173. data/app/controllers/basemate/ui/core/docs_controller.rb +0 -17
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 6e54bd9269c669fa0d87f2052258961731162454a99417077e2102e5d391aee2
4
- data.tar.gz: dbfb0a72d64c215d714c0340667e5f61c19fc0908875b5e1150be97c0c364f61
3
+ metadata.gz: 99d5baa395a0bbd08fb3dd6ba51de334b3408399aa7bde23057fc1e2c6fd7f8a
4
+ data.tar.gz: 3cc9af9f8129174ae0628119476dc6c4760ffe49d6edca24478afacb74494818
5
5
  SHA512:
6
- metadata.gz: b15dcdaa3f71f73c99adf5971ded4c558968c8e93f555e7b8593bf40a074ff7e72fbbff295ac939556aff71c29a1f439588445e01e74fc8af3406726139fb674
7
- data.tar.gz: 767db8f8b1757b356178db83bba45da3427ba2195425670be4a0cc4912382ed2df6d9a19464d7d2d8dcfb805a000c2dca9962761de3966f525580839b06de77f
6
+ metadata.gz: b998a602726e454b65525852bfe72e7c604c18ac4f9f789afbd0c6321c0cc752ad9837cc4b90da71789080bfc1f672d768d3b1240029e0f4c740e8b72edd7dd8
7
+ data.tar.gz: acf096659352f4eca3c0f7861e291e3cbe022b8a0cb17c5391163057a60941cceef4cf604c9b3dfc26b8553f8475d466959880ed60116ff28a842985728712f0
data/README.md CHANGED
@@ -1,8 +1,10 @@
1
1
  [![CircleCI](https://circleci.com/gh/basemate/matestack-ui-core/tree/master.svg?style=shield)](https://circleci.com/gh/basemate/matestack-ui-core/tree/master)
2
+ [![Gitter](https://badges.gitter.im/basemate/community.svg)](https://gitter.im/basemate/community?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge)
3
+ [![Gem Version](https://badge.fury.io/rb/matestack-ui-core.svg)](https://badge.fury.io/rb/matestack-ui-core)
2
4
 
3
5
  ![matestack logo](./logo.png)
4
6
 
5
- # Matestack: Escape the frontend hustle
7
+ # matestack: Escape the frontend hustle
6
8
 
7
9
  ## Create maintainable, dynamic and beautiful UIs easily
8
10
 
@@ -17,11 +19,15 @@ matestack can progressively replace the classic Rails-View-Layer. You are able t
17
19
  it alongside your classic views and incrementally turn your Rails-App into a
18
20
  dynamic Web-App.
19
21
 
22
+ ### Installation:
23
+
24
+ Click here to see how you can add Matestack UI to your existing Rails application: [Installation Guide](./docs/install)
25
+
20
26
  ### Features:
21
27
 
22
28
  #### Define your UI in a Ruby Class
23
29
  ```ruby
24
- class Pages::MyPage < Page::Cell::Page
30
+ class Pages::MyPage < Matestack::Ui::Page
25
31
 
26
32
  def prepare
27
33
  @technologies = ["Rails", "Vue.js", "Trailblazer", "Rspec", "Capybara"]
@@ -42,7 +48,7 @@ end
42
48
  #### Create a Single Page Application without JavaScript
43
49
 
44
50
  ```ruby
45
- class Apps::MyApp < App::Cell::App
51
+ class Apps::MyApp < Matestack::Ui::App
46
52
 
47
53
  def response
48
54
  components{
@@ -51,10 +57,10 @@ class Apps::MyApp < App::Cell::App
51
57
  end
52
58
  nav do
53
59
  transition path: :my_first_page_path do
54
- button "Page 1"
60
+ button text: "Page 1"
55
61
  end
56
62
  transition path: :my_second_page_path do
57
- button "Page 2"
63
+ button text: "Page 2"
58
64
  end
59
65
  end
60
66
  main do
@@ -70,7 +76,7 @@ end
70
76
  ```
71
77
 
72
78
  ```ruby
73
- class Pages::MyApp::MyFirstPage < Page::Cell::Page
79
+ class Pages::MyApp::MyFirstPage < Matestack::Ui::Page
74
80
 
75
81
  def response
76
82
  components{
@@ -83,7 +89,7 @@ class Pages::MyApp::MyFirstPage < Page::Cell::Page
83
89
  end
84
90
  ```
85
91
  ```ruby
86
- class Pages::MyApp::MySecondPage < Page::Cell::Page
92
+ class Pages::MyApp::MySecondPage < Matestack::Ui::Page
87
93
 
88
94
  def response
89
95
  components{
@@ -97,7 +103,7 @@ end
97
103
  ```
98
104
  #### Handle User Interaction dynamically without JavaScript
99
105
  ```ruby
100
- class Pages::MyPage < Page::Cell::Page
106
+ class Pages::MyPage < Matestack::Ui::Page
101
107
 
102
108
  def response
103
109
  components {
@@ -127,7 +133,7 @@ end
127
133
  ```
128
134
  #### Handle User Input dynamically without JavaScript
129
135
  ```ruby
130
- class Pages::MyApp::MyFirstPage < Page::Cell::Page
136
+ class Pages::MyApp::MyFirstPage < Matestack::Ui::Page
131
137
 
132
138
  def prepare
133
139
  @my_model = MyModel.new
@@ -167,7 +173,7 @@ end
167
173
  ```
168
174
  #### Websocket Integration without JavaScript
169
175
  ```ruby
170
- class Pages::MyPage < Page::Cell::Page
176
+ class Pages::MyPage < Matestack::Ui::Page
171
177
 
172
178
  def prepare
173
179
  @comments = Comment.last(5)
@@ -208,6 +214,7 @@ Changelog can be found [here](./CHANGELOG.md)
208
214
  ### Roadmap
209
215
 
210
216
  Scheduled for 0.7.0:
217
+ - Better naming conventions
211
218
  - Webpacker/Yarn Integration
212
219
  - Advanced Websockets Integration
213
220
  - 1:n Relations in Form components
@@ -216,10 +223,9 @@ Scheduled for 0.7.0:
216
223
  - Rails View Integration
217
224
  - Dockerized Core Development
218
225
 
219
-
220
226
  ### Community
221
227
 
222
- TODO: Gitter
228
+ As a low-barrier feedback channel for our early users, we have set up a Gitter chat that can be found [here](https://gitter.im/basemate/community). You are very welcome to ask questions and send us feedback there!
223
229
 
224
230
  ### Contribution
225
231
 
@@ -1,5 +1,5 @@
1
- module Absolute::Cell
2
- class Absolute < Component::Cell::Static
1
+ module Matestack::Ui::Core::Absolute
2
+ class Absolute < Matestack::Ui::Core::Component::Static
3
3
 
4
4
  def setup
5
5
  style = "position: absolute;"
@@ -0,0 +1,3 @@
1
+ %a{@tag_attributes, "@click.prevent": "perform", "href": action_path}
2
+ - if block_given?
3
+ = yield
@@ -2,9 +2,9 @@ import Vue from 'vue/dist/vue.esm'
2
2
  import Vuex from 'vuex'
3
3
  import axios from 'axios'
4
4
 
5
- import matestackEventHub from 'core/js/event-hub'
5
+ import matestackEventHub from 'js/event-hub'
6
6
 
7
- import componentMixin from 'component/js/component'
7
+ import componentMixin from 'component/component'
8
8
 
9
9
  const componentDef = {
10
10
  mixins: [componentMixin],
@@ -44,6 +44,6 @@ const componentDef = {
44
44
  }
45
45
  }
46
46
 
47
- let component = Vue.component('action-cell', componentDef)
47
+ let component = Vue.component('matestack-ui-core-action', componentDef)
48
48
 
49
49
  export default componentDef
@@ -1,5 +1,5 @@
1
- module Action::Cell
2
- class Action < Component::Cell::Dynamic
1
+ module Matestack::Ui::Core::Action
2
+ class Action < Matestack::Ui::Core::Component::Dynamic
3
3
 
4
4
  def setup
5
5
  @component_config[:action_path] = action_path
@@ -1,4 +1,4 @@
1
- %component{"is": "app-cell", "inline-template": true}
1
+ %component{"is": "matestack-ui-core-app", "inline-template": true}
2
2
  %div{"class": "matestack_app"}
3
3
  - @cells.each do |key, cell|
4
4
  = cell.call(:show)
@@ -22,6 +22,6 @@ const componentDef = {
22
22
  }
23
23
  }
24
24
 
25
- let component = Vue.component('app-cell', componentDef)
25
+ let component = Vue.component('matestack-ui-core-app', componentDef)
26
26
 
27
27
  export default componentDef
@@ -1,4 +1,4 @@
1
- module App::Cell
1
+ module Matestack::Ui::Core::App
2
2
  class App < Trailblazer::Cell
3
3
  include ActionView::Helpers::ActiveModelHelper
4
4
  include ActionView::Helpers::ActiveModelInstanceTag
@@ -25,12 +25,35 @@ module App::Cell
25
25
  include ActionView::Helpers::TranslationHelper
26
26
  include ActionView::Helpers::UrlHelper
27
27
  include ::Cell::Haml
28
- include ::Matestack::Ui::Core::ApplicationHelper
29
- include Shared::Utils::ToCell
28
+ include Matestack::Ui::Core::ApplicationHelper
29
+ include Matestack::Ui::Core::ToCell
30
30
  # include ::Rails.application.routes.url_helpers
31
31
 
32
32
  view_paths << "#{Matestack::Ui::Core::Engine.root}/app/concepts"
33
33
 
34
+ extend ViewName::Flat
35
+
36
+ def self.prefixes
37
+ _prefixes = super
38
+ modified_prefixes = _prefixes.map do |prefix|
39
+ prefix_parts = prefix.split("/")
40
+
41
+ if prefix_parts.last.include?(self.name.split("::")[-1].downcase)
42
+ prefix_parts[0..-2].join("/")
43
+ else
44
+ prefix
45
+ end
46
+
47
+ end
48
+
49
+ return modified_prefixes
50
+ end
51
+
52
+ def self.views_dir
53
+ return ""
54
+ end
55
+
56
+
34
57
  def initialize(model=nil, options={})
35
58
  super
36
59
  @nodes = {}
@@ -61,7 +84,7 @@ module App::Cell
61
84
  end
62
85
 
63
86
  def components(&block)
64
- @nodes = ::App::Utils::AppNode.build(self, &block)
87
+ @nodes = Matestack::Ui::Core::AppNode.build(self, &block)
65
88
 
66
89
  @nodes.each do |key, node|
67
90
  @cells[key] = to_cell(key, node["component_name"], node["config"], node["argument"], node["components"], nil)
@@ -69,7 +92,7 @@ module App::Cell
69
92
  end
70
93
 
71
94
  def partial(&block)
72
- ::App::Utils::AppNode.build(self, &block)
95
+ Matestack::Ui::Core::AppNode.build(self, &block)
73
96
  end
74
97
 
75
98
  end
@@ -2,7 +2,7 @@ import Vue from 'vue/dist/vue.esm'
2
2
  import Vuex from 'vuex'
3
3
  import axios from 'axios'
4
4
 
5
- import matestackEventHub from 'core/js/event-hub'
5
+ import matestackEventHub from 'js/event-hub'
6
6
 
7
7
  Vue.use(Vuex)
8
8
 
@@ -1,8 +1,8 @@
1
1
  import Vue from 'vue/dist/vue.esm'
2
2
 
3
- import matestackEventHub from 'core/js/event-hub'
3
+ import matestackEventHub from 'js/event-hub'
4
4
 
5
- import componentMixin from 'component/js/component'
5
+ import componentMixin from 'component/component'
6
6
 
7
7
  const componentDef = {
8
8
  mixins: [componentMixin],
@@ -52,6 +52,6 @@ const componentDef = {
52
52
  },
53
53
  }
54
54
 
55
- let component = Vue.component('async-cell', componentDef)
55
+ let component = Vue.component('matestack-ui-core-async', componentDef)
56
56
 
57
57
  export default componentDef
@@ -0,0 +1,10 @@
1
+ module Matestack::Ui::Core::Async
2
+ class Async < Matestack::Ui::Core::Component::Dynamic
3
+
4
+ def setup
5
+ @rerender = true
6
+ end
7
+
8
+
9
+ end
10
+ end
@@ -1,5 +1,5 @@
1
1
  - unless options[:times].nil?
2
2
  - options[:times].times do
3
- %br
3
+ %br{@tag_attributes}
4
4
  - else
5
- %br
5
+ %br{@tag_attributes}
@@ -0,0 +1,5 @@
1
+ module Matestack::Ui::Core::Br
2
+ class Br < Matestack::Ui::Core::Component::Static
3
+
4
+ end
5
+ end
@@ -0,0 +1,5 @@
1
+ module Matestack::Ui::Core::Button
2
+ class Button < Matestack::Ui::Core::Component::Static
3
+
4
+ end
5
+ end
@@ -0,0 +1,10 @@
1
+ import Vue from 'vue/dist/vue.esm'
2
+ import componentMixin from 'component/component'
3
+
4
+ const componentDef = {
5
+ mixins: [componentMixin]
6
+ }
7
+
8
+ let component = Vue.component('matestack-ui-core-anonym-dynamic-component', componentDef)
9
+
10
+ export default componentDef
@@ -2,7 +2,7 @@ import Vue from 'vue/dist/vue.esm'
2
2
  import axios from 'axios'
3
3
  import VRuntimeTemplate from "v-runtime-template"
4
4
 
5
- import matestackEventHub from 'core/js/event-hub'
5
+ import matestackEventHub from 'js/event-hub'
6
6
 
7
7
  const componentMixin = {
8
8
  props: ['componentConfig', 'params'],
@@ -1,5 +1,7 @@
1
- module Component::Cell
1
+ module Matestack::Ui::Core::Component
2
2
  class Dynamic < Trailblazer::Cell
3
+
4
+
3
5
  include ActionView::Helpers::ActiveModelHelper
4
6
  include ActionView::Helpers::ActiveModelInstanceTag
5
7
  include ActionView::Helpers::AssetTagHelper
@@ -27,12 +29,34 @@ module Component::Cell
27
29
  # include ActionView::Helpers::UrlHelper
28
30
  # include ActionView::Helpers::TranslationHelper
29
31
  include ::Cell::Haml
30
- include ::Matestack::Ui::Core::ApplicationHelper
31
- include Shared::Utils::ToCell
32
+ include Matestack::Ui::Core::ApplicationHelper
33
+ include Matestack::Ui::Core::ToCell
32
34
 
33
35
  view_paths << "#{Matestack::Ui::Core::Engine.root}/app/concepts"
34
36
  view_paths << "#{::Rails.root}/app/matestack"
35
37
 
38
+ extend ViewName::Flat
39
+
40
+ def self.prefixes
41
+ _prefixes = super
42
+ modified_prefixes = _prefixes.map do |prefix|
43
+ prefix_parts = prefix.split("/")
44
+
45
+ if prefix_parts.last.include?(self.name.split("::")[-1].downcase)
46
+ prefix_parts[0..-2].join("/")
47
+ else
48
+ prefix
49
+ end
50
+
51
+ end
52
+
53
+ return modified_prefixes + _prefixes
54
+ end
55
+
56
+ def self.views_dir
57
+ return ""
58
+ end
59
+
36
60
  def initialize(model=nil, options={})
37
61
  super
38
62
  @component_config = options.except(:context, :children, :url_params, :included_config)
@@ -111,6 +135,7 @@ module Component::Cell
111
135
  response &block
112
136
  render :response
113
137
  else
138
+ # render(view: self.class.name.split("::")[-1].downcase.to_sym) do
114
139
  render do
115
140
  render_children
116
141
  end
@@ -132,7 +157,7 @@ module Component::Cell
132
157
  end
133
158
 
134
159
  def components(&block)
135
- @nodes = ::Component::Utils::ComponentNode.build(self, nil, &block)
160
+ @nodes = Matestack::Ui::Core::ComponentNode.build(self, nil, &block)
136
161
 
137
162
  @nodes.each do |key, node|
138
163
  @cells[key] = to_cell(key, node["component_name"], node["config"], node["argument"], node["components"], node["included_config"])
@@ -140,11 +165,11 @@ module Component::Cell
140
165
  end
141
166
 
142
167
  def partial(&block)
143
- return ::Component::Utils::ComponentNode.build(self, nil, &block)
168
+ return Matestack::Ui::Core::ComponentNode.build(self, nil, &block)
144
169
  end
145
170
 
146
171
  def slot(&block)
147
- return ::Component::Utils::ComponentNode.build(self, nil, &block)
172
+ return Matestack::Ui::Core::ComponentNode.build(self, nil, &block)
148
173
  end
149
174
 
150
175
  def get_children
@@ -185,17 +210,30 @@ module Component::Cell
185
210
  name_parts = self.class.name.split("::")
186
211
  module_name = name_parts[0]
187
212
  if module_name == "Components"
188
- name_parts.shift
213
+ name_parts[0] = "Custom"
189
214
  end
190
- name = name_parts[0] + name_parts[1]
191
- if name_parts[0] == name_parts[2]
192
- name = name_parts[0] + name_parts[1]
193
- @component_class = name.underscore.gsub("_", "-")
215
+ if name_parts.count > 1
216
+ if name_parts.include?("Cell")
217
+ name = name_parts[0] + name_parts[1]
218
+ if name_parts[0] == name_parts[2]
219
+ name = name_parts[0] + name_parts[1]
220
+ @component_class = name.underscore.gsub("_", "-")
221
+ else
222
+ name = name_parts[0] + name_parts[2] + name_parts[1]
223
+ @component_class = name.underscore.gsub("_", "-")
224
+ end
225
+ else
226
+ if name_parts[-2] == name_parts[-1]
227
+ @component_class = name_parts[0..-2].join("-").downcase
228
+ else
229
+ @component_class = name_parts.join("-").downcase
230
+ end
231
+ end
194
232
  else
195
- name = name_parts[0] + name_parts[2] + name_parts[1]
233
+ name = name_parts[0]
196
234
  @component_class = name.underscore.gsub("_", "-")
197
235
  end
198
- @component_name = @component_class.gsub("-cell", "")
236
+ @component_name = @component_class
199
237
  end
200
238
 
201
239
  def set_tag_attributes