matestack-ui-core 0.7.2.1 → 1.0.0.rc.1

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 (265) hide show
  1. checksums.yaml +4 -4
  2. data/LICENSE +8 -0
  3. data/README.md +28 -204
  4. data/Rakefile +32 -0
  5. data/app/concepts/matestack/ui/core/abbr/abbr.haml +2 -2
  6. data/app/concepts/matestack/ui/core/abbr/abbr.rb +3 -2
  7. data/app/concepts/matestack/ui/core/action/action.js +114 -11
  8. data/app/concepts/matestack/ui/core/action/action.rb +41 -13
  9. data/app/concepts/matestack/ui/core/{component/response_dynamic.haml → actionview/dynamic.haml} +2 -3
  10. data/app/concepts/matestack/ui/core/actionview/dynamic.rb +28 -0
  11. data/app/concepts/matestack/ui/core/{component → actionview}/static.haml +0 -0
  12. data/app/concepts/matestack/ui/core/actionview/static.rb +28 -0
  13. data/app/concepts/matestack/ui/core/address/address.haml +2 -2
  14. data/app/concepts/matestack/ui/core/address/address.rb +1 -1
  15. data/app/concepts/matestack/ui/core/app/app.haml +2 -3
  16. data/app/concepts/matestack/ui/core/app/app.js +18 -4
  17. data/app/concepts/matestack/ui/core/app/app.rb +34 -81
  18. data/app/concepts/matestack/ui/core/app/location.js +9 -0
  19. data/app/concepts/matestack/ui/core/app/store.js +35 -6
  20. data/app/concepts/matestack/ui/core/area/area.haml +1 -0
  21. data/app/concepts/matestack/ui/core/area/area.rb +20 -0
  22. data/app/concepts/matestack/ui/core/aside/aside.haml +3 -0
  23. data/app/concepts/matestack/ui/core/aside/aside.rb +5 -0
  24. data/app/concepts/matestack/ui/core/async/async.haml +6 -2
  25. data/app/concepts/matestack/ui/core/async/async.js +64 -8
  26. data/app/concepts/matestack/ui/core/async/async.rb +29 -4
  27. data/app/concepts/matestack/ui/core/async/children_wrapper.haml +2 -0
  28. data/app/concepts/matestack/ui/core/{pg/pg.haml → b/b.haml} +1 -1
  29. data/app/concepts/matestack/ui/core/b/b.rb +5 -0
  30. data/app/concepts/matestack/ui/core/bdi/bdi.haml +5 -0
  31. data/app/concepts/matestack/ui/core/bdi/bdi.rb +4 -0
  32. data/app/concepts/matestack/ui/core/bdo/bdo.haml +5 -0
  33. data/app/concepts/matestack/ui/core/bdo/bdo.rb +11 -0
  34. data/app/concepts/matestack/ui/core/cite/cite.haml +5 -0
  35. data/app/concepts/matestack/ui/core/cite/cite.rb +5 -0
  36. data/app/concepts/matestack/ui/core/code/code.haml +5 -0
  37. data/app/concepts/matestack/ui/core/code/code.rb +5 -0
  38. data/app/concepts/matestack/ui/core/collection/content/content.js +4 -4
  39. data/app/concepts/matestack/ui/core/collection/content/content.rb +2 -2
  40. data/app/concepts/matestack/ui/core/collection/content/page/link/link.rb +4 -2
  41. data/app/concepts/matestack/ui/core/collection/filter/filter.js +3 -3
  42. data/app/concepts/matestack/ui/core/collection/filter/filter.rb +4 -5
  43. data/app/concepts/matestack/ui/core/collection/filter/select/select.haml +10 -0
  44. data/app/concepts/matestack/ui/core/collection/filter/select/select.rb +29 -0
  45. data/app/concepts/matestack/ui/core/collection/helper.rb +14 -6
  46. data/app/concepts/matestack/ui/core/collection/order/order.js +4 -4
  47. data/app/concepts/matestack/ui/core/collection/order/order.rb +4 -5
  48. data/app/concepts/matestack/ui/core/collection/order/toggle/indicator/indicator.rb +6 -5
  49. data/app/concepts/matestack/ui/core/component/anonym-dynamic-component.js +1 -1
  50. data/app/concepts/matestack/ui/core/component/base.rb +424 -0
  51. data/app/concepts/matestack/ui/core/component/children.haml +2 -2
  52. data/app/concepts/matestack/ui/core/component/component.js +1 -55
  53. data/app/concepts/matestack/ui/core/component/dynamic.haml +1 -1
  54. data/app/concepts/matestack/ui/core/component/dynamic.rb +24 -239
  55. data/app/concepts/matestack/ui/core/component/rerender.rb +8 -0
  56. data/app/concepts/matestack/ui/core/component/static.rb +3 -12
  57. data/app/concepts/matestack/ui/core/data/data.haml +5 -0
  58. data/app/concepts/matestack/ui/core/data/data.rb +9 -0
  59. data/app/concepts/matestack/ui/core/datalist/datalist.haml +3 -0
  60. data/app/concepts/matestack/ui/core/datalist/datalist.rb +5 -0
  61. data/app/concepts/matestack/ui/core/dd/dd.haml +5 -0
  62. data/app/concepts/matestack/ui/core/dd/dd.rb +5 -0
  63. data/app/concepts/matestack/ui/core/del/del.haml +5 -0
  64. data/app/concepts/matestack/ui/core/del/del.rb +4 -0
  65. data/app/concepts/matestack/ui/core/dfn/dfn.haml +5 -0
  66. data/app/concepts/matestack/ui/core/dfn/dfn.rb +6 -0
  67. data/app/concepts/matestack/ui/core/dialog/dialog.haml +5 -0
  68. data/app/concepts/matestack/ui/core/dialog/dialog.rb +9 -0
  69. data/app/concepts/matestack/ui/core/dl/dl.haml +5 -0
  70. data/app/concepts/matestack/ui/core/dl/dl.rb +5 -0
  71. data/app/concepts/matestack/ui/core/dt/dt.haml +5 -0
  72. data/app/concepts/matestack/ui/core/dt/dt.rb +5 -0
  73. data/app/concepts/matestack/ui/core/em/em.haml +5 -0
  74. data/app/concepts/matestack/ui/core/em/em.rb +5 -0
  75. data/app/concepts/matestack/ui/core/fieldset/fieldset.haml +5 -0
  76. data/app/concepts/matestack/ui/core/fieldset/fieldset.rb +9 -0
  77. data/app/concepts/matestack/ui/core/figure/figure.haml +3 -0
  78. data/app/concepts/matestack/ui/core/figure/figure.rb +5 -0
  79. data/app/concepts/matestack/ui/core/form/checkbox/checkbox.rb +79 -0
  80. data/app/concepts/matestack/ui/core/form/form.js +266 -96
  81. data/app/concepts/matestack/ui/core/form/form.rb +29 -2
  82. data/app/concepts/matestack/ui/core/form/has_errors.rb +54 -0
  83. data/app/concepts/matestack/ui/core/form/has_input_html_attributes.rb +13 -0
  84. data/app/concepts/matestack/ui/core/form/input/input.rb +39 -52
  85. data/app/concepts/matestack/ui/core/form/radio/radio.rb +71 -0
  86. data/app/concepts/matestack/ui/core/form/select/select.haml +9 -76
  87. data/app/concepts/matestack/ui/core/form/select/select.rb +64 -49
  88. data/app/concepts/matestack/ui/core/form/submit/submit.rb +4 -1
  89. data/app/concepts/matestack/ui/core/form/textarea/textarea.rb +28 -0
  90. data/app/concepts/matestack/ui/core/form/utils.rb +47 -0
  91. data/app/concepts/matestack/ui/core/heading/heading.rb +2 -0
  92. data/app/concepts/matestack/ui/core/iframe/iframe.haml +5 -0
  93. data/app/concepts/matestack/ui/core/iframe/iframe.rb +14 -0
  94. data/app/concepts/matestack/ui/core/img/img.rb +1 -0
  95. data/app/concepts/matestack/ui/core/input/input.haml +1 -3
  96. data/app/concepts/matestack/ui/core/input/input.rb +8 -0
  97. data/app/concepts/matestack/ui/core/ins/ins.haml +5 -0
  98. data/app/concepts/matestack/ui/core/ins/ins.rb +10 -0
  99. data/app/concepts/matestack/ui/core/isolated/children_wrapper.haml +2 -0
  100. data/app/concepts/matestack/ui/core/isolated/isolated.haml +10 -0
  101. data/app/concepts/matestack/ui/core/isolated/isolated.js +108 -0
  102. data/app/concepts/matestack/ui/core/isolated/isolated.rb +59 -0
  103. data/app/concepts/matestack/ui/core/js/core.js +43 -19
  104. data/app/concepts/matestack/ui/core/kbd/kbd.haml +5 -0
  105. data/app/concepts/matestack/ui/core/kbd/kbd.rb +4 -0
  106. data/app/concepts/matestack/ui/core/label/label.rb +6 -1
  107. data/app/concepts/matestack/ui/core/legend/legend.haml +5 -0
  108. data/app/concepts/matestack/ui/core/legend/legend.rb +5 -0
  109. data/app/concepts/matestack/ui/core/link/link.rb +7 -6
  110. data/app/concepts/matestack/ui/core/{absolute/absolute.haml → map/map.haml} +1 -1
  111. data/app/concepts/matestack/ui/core/map/map.rb +11 -0
  112. data/app/concepts/matestack/ui/core/mark/mark.haml +5 -0
  113. data/app/concepts/matestack/ui/core/mark/mark.rb +4 -0
  114. data/app/concepts/matestack/ui/core/meter/meter.haml +4 -0
  115. data/app/concepts/matestack/ui/core/meter/meter.rb +14 -0
  116. data/app/concepts/matestack/ui/core/noscript/noscript.haml +5 -0
  117. data/app/concepts/matestack/ui/core/noscript/noscript.rb +5 -0
  118. data/app/concepts/matestack/ui/core/object/object.haml +1 -0
  119. data/app/concepts/matestack/ui/core/object/object.rb +15 -0
  120. data/app/concepts/matestack/ui/core/onclick/onclick.js +2 -3
  121. data/app/concepts/matestack/ui/core/onclick/onclick.rb +1 -0
  122. data/app/concepts/matestack/ui/core/optgroup/optgroup.haml +3 -0
  123. data/app/concepts/matestack/ui/core/optgroup/optgroup.rb +10 -0
  124. data/app/concepts/matestack/ui/core/option/option.haml +5 -0
  125. data/app/concepts/matestack/ui/core/option/option.rb +12 -0
  126. data/app/concepts/matestack/ui/core/output/output.haml +5 -0
  127. data/app/concepts/matestack/ui/core/output/output.rb +11 -0
  128. data/app/concepts/matestack/ui/core/page/{content.js → content/content.js} +8 -2
  129. data/app/concepts/matestack/ui/core/page/content/content.rb +29 -0
  130. data/app/concepts/matestack/ui/core/page/page.haml +3 -9
  131. data/app/concepts/matestack/ui/core/page/page.rb +15 -160
  132. data/app/concepts/matestack/ui/core/param/param.haml +1 -0
  133. data/app/concepts/matestack/ui/core/param/param.rb +10 -0
  134. data/app/concepts/matestack/ui/core/picture/picture.haml +3 -0
  135. data/app/concepts/matestack/ui/core/picture/picture.rb +4 -0
  136. data/app/concepts/matestack/ui/core/plain/plain.rb +1 -1
  137. data/app/concepts/matestack/ui/core/pre/pre.haml +5 -0
  138. data/app/concepts/matestack/ui/core/pre/pre.rb +5 -0
  139. data/app/concepts/matestack/ui/core/progress/progress.rb +1 -1
  140. data/app/concepts/matestack/ui/core/q/q.haml +5 -0
  141. data/app/concepts/matestack/ui/core/q/q.rb +11 -0
  142. data/app/concepts/matestack/ui/core/rp/rp.haml +5 -0
  143. data/app/concepts/matestack/ui/core/rp/rp.rb +5 -0
  144. data/app/concepts/matestack/ui/core/rt/rt.haml +5 -0
  145. data/app/concepts/matestack/ui/core/rt/rt.rb +5 -0
  146. data/app/concepts/matestack/ui/core/ruby/ruby.haml +5 -0
  147. data/app/concepts/matestack/ui/core/ruby/ruby.rb +5 -0
  148. data/app/concepts/matestack/ui/core/s/s.haml +5 -0
  149. data/app/concepts/matestack/ui/core/s/s.rb +6 -0
  150. data/app/concepts/matestack/ui/core/samp/samp.haml +5 -0
  151. data/app/concepts/matestack/ui/core/samp/samp.rb +4 -0
  152. data/app/concepts/matestack/ui/core/slot/slot.rb +2 -2
  153. data/app/concepts/matestack/ui/core/sup/sup.haml +5 -0
  154. data/app/concepts/matestack/ui/core/sup/sup.rb +5 -0
  155. data/app/concepts/matestack/ui/core/template/template.haml +3 -0
  156. data/app/concepts/matestack/ui/core/template/template.rb +4 -0
  157. data/app/concepts/matestack/ui/core/textarea/textarea.haml +2 -0
  158. data/app/concepts/matestack/ui/core/textarea/textarea.rb +10 -0
  159. data/app/concepts/matestack/ui/core/toggle/toggle.haml +2 -0
  160. data/app/concepts/matestack/ui/core/toggle/toggle.js +71 -0
  161. data/app/concepts/matestack/ui/core/toggle/toggle.rb +14 -0
  162. data/app/concepts/matestack/ui/core/transition/transition.js +18 -2
  163. data/app/concepts/matestack/ui/core/transition/transition.rb +2 -1
  164. data/app/concepts/matestack/ui/core/u/u.haml +5 -0
  165. data/app/concepts/matestack/ui/core/u/u.rb +6 -0
  166. data/app/concepts/matestack/ui/core/unescaped/unescaped.rb +7 -0
  167. data/app/concepts/matestack/ui/core/var/var.haml +5 -0
  168. data/app/concepts/matestack/ui/core/var/var.rb +4 -0
  169. data/app/concepts/matestack/ui/core/video/video.haml +3 -1
  170. data/app/concepts/matestack/ui/core/video/video.rb +17 -1
  171. data/app/concepts/matestack/ui/core/view/view.haml +1 -2
  172. data/app/concepts/matestack/ui/core/view/view.rb +27 -2
  173. data/app/concepts/matestack/ui/core/wbr/wbr.haml +1 -0
  174. data/app/concepts/matestack/ui/core/wbr/wbr.rb +4 -0
  175. data/app/concepts/matestack/ui/core/youtube/youtube.rb +1 -1
  176. data/app/helpers/matestack/ui/core/application_helper.rb +89 -17
  177. data/app/javascript/matestack-ui-core/index.js +22 -0
  178. data/app/javascript/matestack-ui-core/styles/index.scss +5 -0
  179. data/app/javascript/packs/matestack-ui-core.js +8 -0
  180. data/app/lib/matestack/ui/component.rb +1 -0
  181. data/app/lib/matestack/ui/core/has_view_context.rb +14 -0
  182. data/app/lib/matestack/ui/core/html_attributes.rb +43 -0
  183. data/app/lib/matestack/ui/core/properties.rb +88 -0
  184. data/app/lib/matestack/ui/core/rendering/default_renderer_class_determiner.rb +33 -0
  185. data/app/lib/matestack/ui/core/rendering/main_renderer.rb +199 -0
  186. data/app/lib/matestack/ui/dynamic_actionview_component.rb +1 -0
  187. data/app/lib/matestack/ui/isolated_component.rb +1 -0
  188. data/app/lib/matestack/ui/static_actionview_component.rb +1 -0
  189. data/app/lib/matestack/ui/vue_js_component.rb +1 -0
  190. data/config/routes.rb +0 -1
  191. data/lib/generators/matestack/app/USAGE +21 -0
  192. data/lib/generators/matestack/app/app_generator.rb +25 -0
  193. data/lib/generators/{matestack_app/templates/matestack_app_controller.erb → matestack/app/templates/app/controllers/%file_name%_controller.rb.tt} +0 -2
  194. data/lib/generators/matestack/app/templates/app/matestack/apps/%file_name%.rb.tt +28 -0
  195. data/lib/generators/matestack/component/USAGE +20 -0
  196. data/lib/generators/matestack/component/component_generator.rb +29 -0
  197. data/lib/generators/{matestack_component/templates/matestack_component.haml.erb → matestack/component/templates/app/matestack/components/%namespace%/%file_name%.haml.tt} +0 -0
  198. data/lib/generators/{matestack_component/templates/matestack_component.js.erb → matestack/component/templates/app/matestack/components/%namespace%/%file_name%.js.tt} +2 -2
  199. data/lib/generators/matestack/component/templates/app/matestack/components/%namespace%/%file_name%.rb.tt +11 -0
  200. data/lib/generators/{matestack_component/templates/matestack_component.scss.erb → matestack/component/templates/app/matestack/components/%namespace%/%file_name%.scss.tt} +0 -0
  201. data/lib/generators/matestack/core/component/USAGE +16 -0
  202. data/lib/generators/matestack/core/component/component_generator.rb +23 -0
  203. data/lib/generators/matestack/core/component/templates/app/concepts/matestack/ui/core/%file_name%/%file_name%.haml.tt +5 -0
  204. data/lib/generators/matestack/core/component/templates/app/concepts/matestack/ui/core/%file_name%/%file_name%.rb.tt +4 -0
  205. data/lib/generators/matestack/core/component/templates/docs/components/%file_name%.md.tt +45 -0
  206. data/lib/generators/matestack/core/component/templates/spec/usage/components/%file_name%_spec.rb +31 -0
  207. data/lib/generators/matestack/page/USAGE +28 -0
  208. data/lib/generators/matestack/page/page_generator.rb +54 -0
  209. data/lib/generators/matestack/page/templates/app/matestack/pages/%app_name%/%namespace%/%file_name%.rb.tt +29 -0
  210. data/lib/matestack/ui/core.rb +5 -2
  211. data/lib/matestack/ui/core/cell.rb +31 -0
  212. data/lib/matestack/ui/core/component/registry.rb +47 -0
  213. data/lib/matestack/ui/core/components.rb +267 -0
  214. data/lib/matestack/ui/core/dsl.rb +6 -0
  215. data/lib/matestack/ui/core/engine.rb +16 -0
  216. data/lib/matestack/ui/core/version.rb +1 -1
  217. data/vendor/assets/javascripts/dist/manifest.json +18 -0
  218. data/vendor/assets/javascripts/dist/manifest.json.br +0 -0
  219. data/vendor/assets/javascripts/dist/manifest.json.gz +0 -0
  220. data/vendor/assets/javascripts/dist/matestack-ui-core.css +3 -0
  221. data/vendor/assets/javascripts/dist/matestack-ui-core.css.map +1 -0
  222. data/vendor/assets/javascripts/dist/matestack-ui-core.js +17060 -0
  223. data/vendor/assets/javascripts/dist/matestack-ui-core.js.map +1 -0
  224. data/vendor/assets/javascripts/dist/matestack-ui-core.min.css +0 -0
  225. data/vendor/assets/javascripts/dist/matestack-ui-core.min.js +3 -0
  226. data/vendor/assets/javascripts/dist/matestack-ui-core.min.js.LICENSE.txt +18 -0
  227. data/vendor/assets/javascripts/dist/matestack-ui-core.min.js.gz +0 -0
  228. data/vendor/assets/javascripts/dist/matestack-ui-core.min.js.map +1 -0
  229. data/vendor/assets/javascripts/dist/matestack-ui-core.min.js.map.gz +0 -0
  230. data/vendor/assets/javascripts/matestack-ui-core.js.erb +2 -0
  231. data/vendor/assets/stylesheets/dist +1 -0
  232. data/vendor/assets/stylesheets/matestack-ui-core.css.erb +2 -0
  233. metadata +188 -89
  234. data/MIT-LICENSE +0 -20
  235. data/app/concepts/matestack/ui/core/absolute/absolute.rb +0 -17
  236. data/app/concepts/matestack/ui/core/component/response.haml +0 -2
  237. data/app/concepts/matestack/ui/core/component/response_dynamic_without_rerender.haml +0 -3
  238. data/app/concepts/matestack/ui/core/form/inline/inline.haml +0 -6
  239. data/app/concepts/matestack/ui/core/form/inline/inline.rb +0 -9
  240. data/app/concepts/matestack/ui/core/form/input/input.haml +0 -27
  241. data/app/concepts/matestack/ui/core/html/html.haml +0 -3
  242. data/app/concepts/matestack/ui/core/html/html.js +0 -10
  243. data/app/concepts/matestack/ui/core/html/html.rb +0 -17
  244. data/app/concepts/matestack/ui/core/isolate/isolate.haml +0 -2
  245. data/app/concepts/matestack/ui/core/isolate/isolate.rb +0 -11
  246. data/app/concepts/matestack/ui/core/page/content.haml +0 -7
  247. data/app/concepts/matestack/ui/core/page/content.rb +0 -5
  248. data/app/concepts/matestack/ui/core/pg/pg.rb +0 -5
  249. data/app/concepts/matestack/ui/core/view/view.js +0 -42
  250. data/app/lib/matestack/ui/core/app_node.rb +0 -53
  251. data/app/lib/matestack/ui/core/component_node.rb +0 -73
  252. data/app/lib/matestack/ui/core/page_node.rb +0 -96
  253. data/app/lib/matestack/ui/core/to_cell.rb +0 -129
  254. data/lib/generators/matestack_app/USAGE +0 -21
  255. data/lib/generators/matestack_app/matestack_app_generator.rb +0 -26
  256. data/lib/generators/matestack_app/templates/matestack_app.erb +0 -26
  257. data/lib/generators/matestack_component/USAGE +0 -20
  258. data/lib/generators/matestack_component/matestack_component_generator.rb +0 -30
  259. data/lib/generators/matestack_component/templates/matestack_component.rb.erb +0 -13
  260. data/lib/generators/matestack_page/USAGE +0 -28
  261. data/lib/generators/matestack_page/matestack_page_generator.rb +0 -41
  262. data/lib/generators/matestack_page/templates/matestack_page.erb +0 -15
  263. data/vendor/assets/javascripts/manifest.json +0 -4
  264. data/vendor/assets/javascripts/matestack-ui-core.js +0 -15309
  265. data/vendor/assets/javascripts/matestack-ui-core.js.map +0 -1
@@ -1,2 +1,2 @@
1
- - @children_cells.each do |key, cell|
2
- = cell.call(:show)
1
+ - @children.each do |child|
2
+ = child.show
@@ -1,59 +1,5 @@
1
- import Vue from 'vue/dist/vue.esm'
2
- import axios from 'axios'
3
- import VRuntimeTemplate from "v-runtime-template"
4
- import matestackEventHub from 'js/event-hub'
5
-
6
1
  const componentMixin = {
7
- props: ['componentConfig', 'params'],
8
- data: function(){
9
- return {
10
- asyncTemplate: null
11
- }
12
- },
13
- methods: {
14
- onRerender: function(event){
15
- if (this.$el.id === event+"__wrapper"){
16
- this.rerender()
17
- }
18
- },
19
- onMatestackUiCoreChannel: function(event){
20
- if (this.componentConfig["rerender_on"] == event.message){
21
- this.rerender()
22
- }
23
- },
24
- rerender: function(){
25
- var self = this;
26
- self.params["component_key"] = self.componentConfig["component_key"]
27
- axios({
28
- method: "get",
29
- url: location.pathname + location.search,
30
- headers: {
31
- 'X-CSRF-Token': document.getElementsByName("csrf-token")[0].getAttribute('content')
32
- },
33
- params: {"component_key": self.componentConfig["component_key"]}
34
- })
35
- .then(function(response){
36
- self.asyncTemplate = response["data"];
37
- })
38
- },
39
- rerenderWith: function(newParams){
40
- Object.assign(this.params, newParams);
41
- this.rerender()
42
- }
43
- },
44
- created: function () {
45
- const self = this
46
- matestackEventHub.$on('rerender', self.onRerender)
47
- matestackEventHub.$on('MatestackUiCoreChannel', self.onMatestackUiCoreChannel)
48
- },
49
- beforeDestroy: function() {
50
- const self = this
51
- matestackEventHub.$off('rerender', self.onRerender);
52
- matestackEventHub.$off('MatestackUiCoreChannel', self.onMatestackUiCoreChannel)
53
- },
54
- components: {
55
- VRuntimeTemplate: VRuntimeTemplate
56
- }
2
+ props: ['componentConfig', 'params']
57
3
  }
58
4
 
59
5
  export default componentMixin
@@ -1,5 +1,5 @@
1
1
  %component{dynamic_tag_attributes}
2
- %div
2
+ %div{class: "matestack-async-component-wrapper", "v-bind:class": "{ 'loading': loading === true }"}
3
3
  %div{"v-if": "asyncTemplate == null"}
4
4
  = render_content
5
5
  %div{"v-if": "asyncTemplate != null"}
@@ -1,261 +1,46 @@
1
1
  module Matestack::Ui::Core::Component
2
- class Dynamic < Trailblazer::Cell
2
+ class Dynamic < Base
3
3
 
4
- include ActionView::Helpers::ActiveModelHelper
5
- include ActionView::Helpers::ActiveModelInstanceTag
6
- include ActionView::Helpers::AssetTagHelper
7
- include ActionView::Helpers::AssetUrlHelper
8
- include ActionView::Helpers::AtomFeedHelper
9
- include ActionView::Helpers::CacheHelper
10
- include ActionView::Helpers::CaptureHelper
11
- include ActionView::Helpers::CspHelper
12
- include ActionView::Helpers::CsrfHelper
13
- include ActionView::Helpers::DateHelper
14
- include ActionView::Helpers::DebugHelper
15
- include ActionView::Helpers::FormHelper
16
- include ActionView::Helpers::FormOptionsHelper
17
- include ActionView::Helpers::FormTagHelper
18
- include ActionView::Helpers::JavaScriptHelper
19
- include ActionView::Helpers::NumberHelper
20
- include ActionView::Helpers::OutputSafetyHelper
21
- include ActionView::Helpers::RecordTagHelper
22
- # include ActionView::Helpers::RenderingHelper
23
- include ActionView::Helpers::SanitizeHelper
24
- include ActionView::Helpers::TagHelper
25
- include ActionView::Helpers::TextHelper
26
- include ActionView::Helpers::TranslationHelper
27
- include ActionView::Helpers::UrlHelper
28
- include ::Cell::Haml
29
- include Matestack::Ui::Core::ApplicationHelper
30
- include Matestack::Ui::Core::ToCell
31
-
32
- view_paths << "#{Matestack::Ui::Core::Engine.root}/app/concepts"
33
- view_paths << "#{::Rails.root}/app/matestack"
34
-
35
- extend ViewName::Flat
36
-
37
- def self.prefixes
38
- _prefixes = super
39
- modified_prefixes = _prefixes.map do |prefix|
40
- prefix_parts = prefix.split("/")
41
-
42
- if prefix_parts.last.include?(self.name.split("::")[-1].downcase)
43
- prefix_parts[0..-2].join("/")
44
- else
45
- prefix
46
- end
47
-
48
- end
49
-
50
- return modified_prefixes + _prefixes
51
- end
52
-
53
- def self.views_dir
54
- return ""
55
- end
56
-
57
- def initialize(model=nil, options={})
4
+ def initialize(*_args)
58
5
  super
59
- @component_config = options.except(:context, :children, :url_params, :included_config)
60
- @url_params = options[:url_params].except(:action, :controller, :component_key)
61
- @component_key = options[:component_key]
62
- @children_cells = {}
63
- @controller_context = context[:controller_context]
64
- @argument = model
65
- @static = false
66
- @nodes = {}
67
- @cells = {}
68
- @included_config = options[:included_config]
69
- @cached_params = options[:cached_params]
70
- @rerender = false
71
- @options = options
72
- set_tag_attributes
73
- setup
74
- generate_component_name
75
- generate_children_cells
76
- validate_options
77
6
  end
78
7
 
79
- def validate_options
80
- if defined? self.class::REQUIRED_KEYS
81
- self.class::REQUIRED_KEYS.each do |key|
82
- raise "required key '#{key}' is missing" if options[key].nil?
83
- end
84
- end
85
- custom_options_validation
8
+ def show
9
+ render :dynamic_without_rerender
86
10
  end
87
11
 
88
- def custom_options_validation
89
- true
90
- end
12
+ private
91
13
 
92
- def setup
93
- true
14
+ def dynamic_tag_attributes
15
+ attrs = {
16
+ "is": get_vue_js_name,
17
+ "ref": component_id,
18
+ ":params": params.except(:controller, :action).to_json,
19
+ ":component-config": @component_config.to_json,
20
+ "inline-template": true,
21
+ }
22
+ attrs.merge!(options[:attributes]) unless options[:attributes].nil?
23
+ attrs
94
24
  end
95
25
 
96
- def show(&block)
97
- if respond_to? :prepare
98
- prepare
99
- end
100
- if respond_to? :response
101
- response &block
102
- if @static
103
- render :response
104
- else
105
- if @rerender
106
- render :response_dynamic
107
- else
108
- render :response_dynamic_without_rerender
109
- end
110
- end
111
- else
112
- if @static
113
- render(view: :static, &block)
114
- else
115
- if @rerender
116
- render(view: :dynamic, &block)
117
- else
118
- render(view: :dynamic_without_rerender, &block)
119
- end
120
- end
121
- end
26
+ def get_vue_js_name
27
+ self.class.vue_js_name
122
28
  end
123
29
 
124
- def render_children
125
- render(view: :children)
126
- end
30
+ class << self
127
31
 
128
- def render_content(&block)
129
- if respond_to? :prepare
130
- prepare
131
- end
132
- if respond_to? :response
133
- response &block
134
- render :response
135
- else
136
- # render(view: self.class.name.split("::")[-1].downcase.to_sym) do
137
- render do
138
- render_children
139
- end
32
+ def inherited(subclass)
33
+ subclass.vue_js_component_name vue_js_name unless self == Matestack::Ui::Core::Component::Dynamic
140
34
  end
141
- end
142
-
143
- def component_id
144
- options[:id] ||= nil
145
- end
146
-
147
- def js_action name, arguments
148
- argumentString = arguments.join('", "')
149
- argumentString = '"' + argumentString + '"'
150
- [name, '(', argumentString, ')'].join("")
151
- end
152
35
 
153
- def navigate_to path
154
- js_action("navigateTo", [path])
155
- end
156
-
157
- def components(&block)
158
- @nodes = Matestack::Ui::Core::ComponentNode.build(self, nil, &block)
159
-
160
- @nodes.each do |key, node|
161
- @cells[key] = to_cell(key, node["component_name"], node["config"], node["argument"], node["components"], node["included_config"], node["cached_params"])
36
+ def vue_js_component_name(name)
37
+ @vue_js_name = name.to_s
162
38
  end
163
- end
164
-
165
- def partial(&block)
166
- return Matestack::Ui::Core::ComponentNode.build(self, nil, &block)
167
- end
168
-
169
- def slot(&block)
170
- return Matestack::Ui::Core::ComponentNode.build(self, nil, &block)
171
- end
172
-
173
- def get_children
174
- return options[:children]
175
- end
176
-
177
- def to_css_class(symbol)
178
- symbol.to_s.gsub("_", "-")
179
- end
180
39
 
181
- def modifiers
182
- result = []
183
- return unless defined? self.class::OPTIONS
184
- self.class::OPTIONS.select{ |modifer_key, modifier_options|
185
- modifier_options[:css_modifier] == true
186
- }.each do |modifer_key, modifier_options|
187
- if !options[modifer_key] == false || modifier_options[:default] == true
188
- result << "#{to_css_class(self.class::CSSClASS)}--#{to_css_class(modifer_key)}"
189
- end
40
+ def vue_js_name
41
+ @vue_js_name ||= self.name.split(/(?=[A-Z])/).join("-").downcase.gsub("::", "")
190
42
  end
191
- result.join(" ")
192
43
  end
193
44
 
194
- private
195
-
196
- def generate_children_cells
197
- unless options[:children].nil?
198
- #needs refactoring --> in some cases, :component_key, :children, :origin_url, :url_params, :included_config get passed into options[:children] which causes errors
199
- #quickfix: except them from iteration
200
- options[:children].except(:component_key, :children, :origin_url, :url_params, :included_config).each do |key, node|
201
- @children_cells[key] = to_cell("#{@component_key}__#{key}", node["component_name"], node["config"], node["argument"], node["components"], node["included_config"], node["cached_params"])
202
- end
203
- end
204
- end
205
-
206
- def generate_component_name
207
- name_parts = self.class.name.split("::")
208
- module_name = name_parts[0]
209
- if module_name == "Components"
210
- name_parts[0] = "Custom"
211
- end
212
- if name_parts.count > 1
213
- if name_parts.include?("Cell")
214
- name = name_parts[0] + name_parts[1]
215
- if name_parts[0] == name_parts[2]
216
- name = name_parts[0] + name_parts[1]
217
- @component_class = name.underscore.gsub("_", "-")
218
- else
219
- name = name_parts[0] + name_parts[2] + name_parts[1]
220
- @component_class = name.underscore.gsub("_", "-")
221
- end
222
- else
223
- if name_parts[-2] == name_parts[-1]
224
- @component_class = name_parts[0..-2].join("-").downcase
225
- else
226
- @component_class = name_parts.join("-").downcase
227
- end
228
- end
229
- else
230
- name = name_parts[0]
231
- @component_class = name.underscore.gsub("_", "-")
232
- end
233
- @component_name = @component_class
234
- end
235
-
236
- def set_tag_attributes
237
- default_attributes = {
238
- "id": component_id,
239
- "class": options[:class]
240
- }
241
- unless options[:attributes].nil?
242
- default_attributes.merge!(options[:attributes])
243
- end
244
-
245
- @tag_attributes = default_attributes
246
- end
247
-
248
- def dynamic_tag_attributes
249
- attrs = {
250
- "is": @component_class,
251
- "ref": component_id,
252
- ":params": @url_params.to_json,
253
- ":component-config": @component_config.to_json,
254
- "inline-template": true,
255
- }
256
- attrs.merge!(options[:attributes]) unless options[:attributes].nil?
257
- return attrs
258
- end
259
-
260
45
  end
261
46
  end
@@ -0,0 +1,8 @@
1
+ module Matestack::Ui::Core::Component
2
+ # NAME PENDING
3
+ class Rerender < Dynamic
4
+ def show
5
+ render :dynamic
6
+ end
7
+ end
8
+ end
@@ -1,16 +1,7 @@
1
1
  module Matestack::Ui::Core::Component
2
- class Static < Matestack::Ui::Core::Component::Dynamic
3
-
4
- def initialize(model=nil, options={})
5
- super
6
- if options[:dynamic]
7
- @static = false
8
- @rerender = true
9
- @component_class = "anonym-dynamic-component"
10
- else
11
- @static = true
12
- end
2
+ class Static < Base
3
+ def show
4
+ render_content
13
5
  end
14
-
15
6
  end
16
7
  end
@@ -0,0 +1,5 @@
1
+ %data{@tag_attributes}
2
+ - if options[:text].blank? && block_given?
3
+ = yield
4
+ - else
5
+ = options[:text]
@@ -0,0 +1,9 @@
1
+ module Matestack::Ui::Core::Data
2
+ class Data < Matestack::Ui::Core::Component::Static
3
+ def setup
4
+ @tag_attributes.merge!({
5
+ "value": options[:value] ||= nil
6
+ })
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,3 @@
1
+ %datalist{@tag_attributes}
2
+ - if block_given?
3
+ = yield
@@ -0,0 +1,5 @@
1
+ module Matestack::Ui::Core::Datalist
2
+ class Datalist < Matestack::Ui::Core::Component::Static
3
+
4
+ end
5
+ end
@@ -0,0 +1,5 @@
1
+ %dd{@tag_attributes}
2
+ - if options[:text].nil? && block_given?
3
+ = yield
4
+ - else
5
+ = options[:text]
@@ -0,0 +1,5 @@
1
+ module Matestack::Ui::Core::Dd
2
+ class Dd < Matestack::Ui::Core::Component::Static
3
+
4
+ end
5
+ end
@@ -0,0 +1,5 @@
1
+ %del{@tag_attributes.merge({:cite => options[:cite], :datetime => options[:datetime]})}
2
+ - if options[:text].nil? && block_given?
3
+ = yield
4
+ - else
5
+ = options[:text]
@@ -0,0 +1,4 @@
1
+ module Matestack::Ui::Core::Del
2
+ class Del < Matestack::Ui::Core::Component::Static
3
+ end
4
+ end
@@ -0,0 +1,5 @@
1
+ %dfn{@tag_attributes}
2
+ - if options[:text].nil? && block_given?
3
+ = yield
4
+ - else
5
+ = options[:text]