matestack-ui-core 1.3.0 → 2.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (397) hide show
  1. checksums.yaml +4 -4
  2. data/LICENSE +17 -5
  3. data/README.md +98 -113
  4. data/Rakefile +0 -2
  5. data/lib/matestack/ui/app.rb +1 -0
  6. data/lib/matestack/ui/component.rb +1 -0
  7. data/lib/matestack/ui/core.rb +58 -10
  8. data/lib/matestack/ui/core/app.rb +36 -0
  9. data/lib/matestack/ui/core/base.rb +109 -0
  10. data/lib/matestack/ui/core/component.rb +8 -0
  11. data/lib/matestack/ui/core/context.rb +17 -0
  12. data/lib/matestack/ui/core/helper.rb +91 -0
  13. data/lib/matestack/ui/core/page.rb +63 -0
  14. data/lib/matestack/ui/core/properties.rb +105 -0
  15. data/lib/matestack/ui/core/slots.rb +15 -0
  16. data/lib/matestack/ui/core/tag_helper.rb +94 -0
  17. data/lib/matestack/ui/core/version.rb +1 -1
  18. data/lib/matestack/ui/core/vue_attributes.rb +13 -0
  19. data/lib/matestack/ui/page.rb +1 -0
  20. data/{app/concepts/matestack/ui/core → lib/matestack/ui/vue_js}/app/app.js +2 -3
  21. data/{app/concepts/matestack/ui/core → lib/matestack/ui/vue_js}/app/location.js +0 -0
  22. data/{app/concepts/matestack/ui/core → lib/matestack/ui/vue_js}/app/store.js +1 -1
  23. data/lib/matestack/ui/vue_js/components.rb +94 -0
  24. data/lib/matestack/ui/vue_js/components/action.js +151 -0
  25. data/lib/matestack/ui/vue_js/components/action.rb +46 -0
  26. data/{app/concepts/matestack/ui/core/async → lib/matestack/ui/vue_js/components}/async.js +22 -22
  27. data/lib/matestack/ui/vue_js/components/async.rb +84 -0
  28. data/{app/concepts/matestack/ui/core/cable → lib/matestack/ui/vue_js/components}/cable.js +14 -14
  29. data/lib/matestack/ui/vue_js/components/cable.rb +69 -0
  30. data/{app/concepts/matestack/ui/core/collection/content → lib/matestack/ui/vue_js/components/collection}/content.js +21 -22
  31. data/lib/matestack/ui/vue_js/components/collection/content.rb +32 -0
  32. data/lib/matestack/ui/vue_js/components/collection/filter.js +45 -0
  33. data/lib/matestack/ui/vue_js/components/collection/filter.rb +29 -0
  34. data/lib/matestack/ui/vue_js/components/collection/filter_reset.rb +19 -0
  35. data/{app/concepts/matestack/ui/core → lib/matestack/ui/vue_js/components}/collection/helper.rb +68 -61
  36. data/lib/matestack/ui/vue_js/components/collection/next.rb +19 -0
  37. data/lib/matestack/ui/vue_js/components/collection/order.js +46 -0
  38. data/lib/matestack/ui/vue_js/components/collection/order.rb +28 -0
  39. data/lib/matestack/ui/vue_js/components/collection/order_toggle.rb +21 -0
  40. data/lib/matestack/ui/vue_js/components/collection/order_toggle_indicator.rb +30 -0
  41. data/lib/matestack/ui/vue_js/components/collection/page.rb +21 -0
  42. data/lib/matestack/ui/vue_js/components/collection/previous.rb +19 -0
  43. data/lib/matestack/ui/vue_js/components/form/base.rb +167 -0
  44. data/{app/concepts/matestack/ui/core/form/checkbox → lib/matestack/ui/vue_js/components/form}/checkbox.js +2 -2
  45. data/lib/matestack/ui/vue_js/components/form/checkbox.rb +105 -0
  46. data/{app/concepts/matestack/ui/core/form/checkbox/mixin.js → lib/matestack/ui/vue_js/components/form/checkbox_mixin.js} +5 -2
  47. data/lib/matestack/ui/vue_js/components/form/context.rb +15 -0
  48. data/{app/concepts/matestack/ui/core → lib/matestack/ui/vue_js/components}/form/form.js +53 -53
  49. data/lib/matestack/ui/vue_js/components/form/form.rb +64 -0
  50. data/{app/concepts/matestack/ui/core/form/input → lib/matestack/ui/vue_js/components/form}/input.js +2 -2
  51. data/lib/matestack/ui/vue_js/components/form/input.rb +37 -0
  52. data/{app/concepts/matestack/ui/core/form/input/mixin.js → lib/matestack/ui/vue_js/components/form/input_mixin.js} +5 -2
  53. data/{app/concepts/matestack/ui/core/form/radio → lib/matestack/ui/vue_js/components/form}/radio.js +2 -2
  54. data/lib/matestack/ui/vue_js/components/form/radio.rb +76 -0
  55. data/{app/concepts/matestack/ui/core/form/radio/mixin.js → lib/matestack/ui/vue_js/components/form/radio_mixin.js} +4 -1
  56. data/{app/concepts/matestack/ui/core/form/select → lib/matestack/ui/vue_js/components/form}/select.js +2 -2
  57. data/lib/matestack/ui/vue_js/components/form/select.rb +88 -0
  58. data/{app/concepts/matestack/ui/core/form/select/mixin.js → lib/matestack/ui/vue_js/components/form/select_mixin.js} +5 -2
  59. data/{app/concepts/matestack/ui/core/form/textarea → lib/matestack/ui/vue_js/components/form}/textarea.js +2 -2
  60. data/lib/matestack/ui/vue_js/components/form/textarea.rb +37 -0
  61. data/{app/concepts/matestack/ui/core/form/textarea/mixin.js → lib/matestack/ui/vue_js/components/form/textarea_mixin.js} +5 -2
  62. data/{app/concepts/matestack/ui/core/isolated → lib/matestack/ui/vue_js/components}/isolated.js +19 -19
  63. data/lib/matestack/ui/vue_js/components/isolated.rb +86 -0
  64. data/{app/concepts/matestack/ui/core/component/component.js → lib/matestack/ui/vue_js/components/mixin.js} +2 -2
  65. data/{app/concepts/matestack/ui/core/onclick → lib/matestack/ui/vue_js/components}/onclick.js +3 -4
  66. data/lib/matestack/ui/vue_js/components/onclick.rb +37 -0
  67. data/{app/concepts/matestack/ui/core/toggle → lib/matestack/ui/vue_js/components}/toggle.js +17 -17
  68. data/lib/matestack/ui/vue_js/components/toggle.rb +38 -0
  69. data/{app/concepts/matestack/ui/core/transition → lib/matestack/ui/vue_js/components}/transition.js +6 -6
  70. data/lib/matestack/ui/vue_js/components/transition.rb +40 -0
  71. data/lib/matestack/ui/vue_js/event_hub.js +5 -0
  72. data/{app/concepts/matestack/ui/core/js/helpers/query-params-helper.js → lib/matestack/ui/vue_js/helpers/query_params_helper.js} +0 -0
  73. data/lib/matestack/ui/vue_js/index.js +52 -0
  74. data/lib/matestack/ui/vue_js/initialize.rb +5 -0
  75. data/{app/concepts/matestack/ui/core/page/content → lib/matestack/ui/vue_js/page}/content.js +1 -1
  76. data/lib/matestack/ui/vue_js/vue.rb +63 -0
  77. data/lib/matestack/ui/vue_js_component.rb +2 -0
  78. metadata +77 -408
  79. data/app/concepts/matestack/ui/core/abbr/abbr.haml +0 -5
  80. data/app/concepts/matestack/ui/core/abbr/abbr.rb +0 -5
  81. data/app/concepts/matestack/ui/core/action/action.haml +0 -3
  82. data/app/concepts/matestack/ui/core/action/action.js +0 -152
  83. data/app/concepts/matestack/ui/core/action/action.rb +0 -80
  84. data/app/concepts/matestack/ui/core/actionview/dynamic.haml +0 -6
  85. data/app/concepts/matestack/ui/core/actionview/dynamic.rb +0 -28
  86. data/app/concepts/matestack/ui/core/actionview/static.haml +0 -1
  87. data/app/concepts/matestack/ui/core/actionview/static.rb +0 -28
  88. data/app/concepts/matestack/ui/core/address/address.haml +0 -5
  89. data/app/concepts/matestack/ui/core/address/address.rb +0 -5
  90. data/app/concepts/matestack/ui/core/app/app.haml +0 -3
  91. data/app/concepts/matestack/ui/core/app/app.rb +0 -51
  92. data/app/concepts/matestack/ui/core/area/area.haml +0 -1
  93. data/app/concepts/matestack/ui/core/area/area.rb +0 -6
  94. data/app/concepts/matestack/ui/core/article/article.haml +0 -5
  95. data/app/concepts/matestack/ui/core/article/article.rb +0 -5
  96. data/app/concepts/matestack/ui/core/aside/aside.haml +0 -3
  97. data/app/concepts/matestack/ui/core/aside/aside.rb +0 -4
  98. data/app/concepts/matestack/ui/core/async/async.haml +0 -6
  99. data/app/concepts/matestack/ui/core/async/async.rb +0 -37
  100. data/app/concepts/matestack/ui/core/async/children_wrapper.haml +0 -2
  101. data/app/concepts/matestack/ui/core/b/b.haml +0 -5
  102. data/app/concepts/matestack/ui/core/b/b.rb +0 -5
  103. data/app/concepts/matestack/ui/core/bdi/bdi.haml +0 -5
  104. data/app/concepts/matestack/ui/core/bdi/bdi.rb +0 -5
  105. data/app/concepts/matestack/ui/core/bdo/bdo.haml +0 -5
  106. data/app/concepts/matestack/ui/core/bdo/bdo.rb +0 -6
  107. data/app/concepts/matestack/ui/core/blockquote/blockquote.haml +0 -5
  108. data/app/concepts/matestack/ui/core/blockquote/blockquote.rb +0 -6
  109. data/app/concepts/matestack/ui/core/br/br.haml +0 -5
  110. data/app/concepts/matestack/ui/core/br/br.rb +0 -5
  111. data/app/concepts/matestack/ui/core/button/button.haml +0 -5
  112. data/app/concepts/matestack/ui/core/button/button.rb +0 -7
  113. data/app/concepts/matestack/ui/core/cable/cable.haml +0 -4
  114. data/app/concepts/matestack/ui/core/cable/cable.rb +0 -28
  115. data/app/concepts/matestack/ui/core/cable/children_wrapper.haml +0 -2
  116. data/app/concepts/matestack/ui/core/caption/caption.haml +0 -5
  117. data/app/concepts/matestack/ui/core/caption/caption.rb +0 -5
  118. data/app/concepts/matestack/ui/core/cite/cite.haml +0 -5
  119. data/app/concepts/matestack/ui/core/cite/cite.rb +0 -5
  120. data/app/concepts/matestack/ui/core/code/code.haml +0 -5
  121. data/app/concepts/matestack/ui/core/code/code.rb +0 -5
  122. data/app/concepts/matestack/ui/core/collection/content/content.rb +0 -16
  123. data/app/concepts/matestack/ui/core/collection/content/next/next.haml +0 -3
  124. data/app/concepts/matestack/ui/core/collection/content/next/next.rb +0 -5
  125. data/app/concepts/matestack/ui/core/collection/content/page/link/link.haml +0 -3
  126. data/app/concepts/matestack/ui/core/collection/content/page/link/link.rb +0 -7
  127. data/app/concepts/matestack/ui/core/collection/content/previous/previous.haml +0 -3
  128. data/app/concepts/matestack/ui/core/collection/content/previous/previous.rb +0 -5
  129. data/app/concepts/matestack/ui/core/collection/filter/filter.js +0 -48
  130. data/app/concepts/matestack/ui/core/collection/filter/filter.rb +0 -16
  131. data/app/concepts/matestack/ui/core/collection/filter/input/input.rb +0 -28
  132. data/app/concepts/matestack/ui/core/collection/filter/reset/reset.haml +0 -3
  133. data/app/concepts/matestack/ui/core/collection/filter/reset/reset.rb +0 -5
  134. data/app/concepts/matestack/ui/core/collection/filter/select/select.haml +0 -10
  135. data/app/concepts/matestack/ui/core/collection/filter/select/select.rb +0 -30
  136. data/app/concepts/matestack/ui/core/collection/filter/submit/submit.haml +0 -3
  137. data/app/concepts/matestack/ui/core/collection/filter/submit/submit.rb +0 -5
  138. data/app/concepts/matestack/ui/core/collection/order/order.js +0 -56
  139. data/app/concepts/matestack/ui/core/collection/order/order.rb +0 -16
  140. data/app/concepts/matestack/ui/core/collection/order/toggle/indicator/indicator.rb +0 -17
  141. data/app/concepts/matestack/ui/core/collection/order/toggle/toggle.haml +0 -3
  142. data/app/concepts/matestack/ui/core/collection/order/toggle/toggle.rb +0 -4
  143. data/app/concepts/matestack/ui/core/component/anonym-dynamic-component.js +0 -10
  144. data/app/concepts/matestack/ui/core/component/base.rb +0 -430
  145. data/app/concepts/matestack/ui/core/component/children.haml +0 -2
  146. data/app/concepts/matestack/ui/core/component/dynamic.haml +0 -6
  147. data/app/concepts/matestack/ui/core/component/dynamic.rb +0 -47
  148. data/app/concepts/matestack/ui/core/component/dynamic_without_rerender.haml +0 -2
  149. data/app/concepts/matestack/ui/core/component/static.rb +0 -7
  150. data/app/concepts/matestack/ui/core/data/data.haml +0 -5
  151. data/app/concepts/matestack/ui/core/data/data.rb +0 -6
  152. data/app/concepts/matestack/ui/core/datalist/datalist.haml +0 -3
  153. data/app/concepts/matestack/ui/core/datalist/datalist.rb +0 -4
  154. data/app/concepts/matestack/ui/core/dd/dd.haml +0 -5
  155. data/app/concepts/matestack/ui/core/dd/dd.rb +0 -5
  156. data/app/concepts/matestack/ui/core/del/del.haml +0 -5
  157. data/app/concepts/matestack/ui/core/del/del.rb +0 -6
  158. data/app/concepts/matestack/ui/core/details/details.haml +0 -3
  159. data/app/concepts/matestack/ui/core/details/details.rb +0 -5
  160. data/app/concepts/matestack/ui/core/dfn/dfn.haml +0 -5
  161. data/app/concepts/matestack/ui/core/dfn/dfn.rb +0 -6
  162. data/app/concepts/matestack/ui/core/dialog/dialog.haml +0 -5
  163. data/app/concepts/matestack/ui/core/dialog/dialog.rb +0 -6
  164. data/app/concepts/matestack/ui/core/div/div.haml +0 -3
  165. data/app/concepts/matestack/ui/core/div/div.rb +0 -4
  166. data/app/concepts/matestack/ui/core/dl/dl.haml +0 -5
  167. data/app/concepts/matestack/ui/core/dl/dl.rb +0 -5
  168. data/app/concepts/matestack/ui/core/dt/dt.haml +0 -5
  169. data/app/concepts/matestack/ui/core/dt/dt.rb +0 -5
  170. data/app/concepts/matestack/ui/core/em/em.haml +0 -5
  171. data/app/concepts/matestack/ui/core/em/em.rb +0 -5
  172. data/app/concepts/matestack/ui/core/fieldset/fieldset.haml +0 -5
  173. data/app/concepts/matestack/ui/core/fieldset/fieldset.rb +0 -6
  174. data/app/concepts/matestack/ui/core/figure/figure.haml +0 -3
  175. data/app/concepts/matestack/ui/core/figure/figure.rb +0 -4
  176. data/app/concepts/matestack/ui/core/footer/footer.haml +0 -3
  177. data/app/concepts/matestack/ui/core/footer/footer.rb +0 -4
  178. data/app/concepts/matestack/ui/core/form/checkbox/base.rb +0 -120
  179. data/app/concepts/matestack/ui/core/form/checkbox/checkbox.rb +0 -16
  180. data/app/concepts/matestack/ui/core/form/form.haml +0 -2
  181. data/app/concepts/matestack/ui/core/form/form.rb +0 -104
  182. data/app/concepts/matestack/ui/core/form/has_errors.rb +0 -54
  183. data/app/concepts/matestack/ui/core/form/has_input_html_attributes.rb +0 -13
  184. data/app/concepts/matestack/ui/core/form/input/base.rb +0 -75
  185. data/app/concepts/matestack/ui/core/form/input/input.rb +0 -17
  186. data/app/concepts/matestack/ui/core/form/radio/base.rb +0 -90
  187. data/app/concepts/matestack/ui/core/form/radio/radio.rb +0 -16
  188. data/app/concepts/matestack/ui/core/form/select/base.rb +0 -98
  189. data/app/concepts/matestack/ui/core/form/select/select.rb +0 -19
  190. data/app/concepts/matestack/ui/core/form/submit/base.rb +0 -12
  191. data/app/concepts/matestack/ui/core/form/submit/submit.js +0 -19
  192. data/app/concepts/matestack/ui/core/form/submit/submit.rb +0 -15
  193. data/app/concepts/matestack/ui/core/form/textarea/base.rb +0 -49
  194. data/app/concepts/matestack/ui/core/form/textarea/textarea.rb +0 -17
  195. data/app/concepts/matestack/ui/core/form/utils.rb +0 -47
  196. data/app/concepts/matestack/ui/core/header/header.haml +0 -3
  197. data/app/concepts/matestack/ui/core/header/header.rb +0 -4
  198. data/app/concepts/matestack/ui/core/heading/heading.haml +0 -5
  199. data/app/concepts/matestack/ui/core/heading/heading.rb +0 -5
  200. data/app/concepts/matestack/ui/core/hr/hr.haml +0 -1
  201. data/app/concepts/matestack/ui/core/hr/hr.rb +0 -4
  202. data/app/concepts/matestack/ui/core/icon/icon.haml +0 -5
  203. data/app/concepts/matestack/ui/core/icon/icon.rb +0 -5
  204. data/app/concepts/matestack/ui/core/iframe/iframe.haml +0 -5
  205. data/app/concepts/matestack/ui/core/iframe/iframe.rb +0 -7
  206. data/app/concepts/matestack/ui/core/img/img.haml +0 -1
  207. data/app/concepts/matestack/ui/core/img/img.rb +0 -15
  208. data/app/concepts/matestack/ui/core/input/input.haml +0 -1
  209. data/app/concepts/matestack/ui/core/input/input.rb +0 -9
  210. data/app/concepts/matestack/ui/core/ins/ins.haml +0 -5
  211. data/app/concepts/matestack/ui/core/ins/ins.rb +0 -6
  212. data/app/concepts/matestack/ui/core/isolated/children_wrapper.haml +0 -2
  213. data/app/concepts/matestack/ui/core/isolated/isolated.haml +0 -10
  214. data/app/concepts/matestack/ui/core/isolated/isolated.rb +0 -59
  215. data/app/concepts/matestack/ui/core/js/core.js +0 -66
  216. data/app/concepts/matestack/ui/core/js/event-hub.js +0 -5
  217. data/app/concepts/matestack/ui/core/kbd/kbd.haml +0 -5
  218. data/app/concepts/matestack/ui/core/kbd/kbd.rb +0 -5
  219. data/app/concepts/matestack/ui/core/label/label.haml +0 -5
  220. data/app/concepts/matestack/ui/core/label/label.rb +0 -6
  221. data/app/concepts/matestack/ui/core/legend/legend.haml +0 -5
  222. data/app/concepts/matestack/ui/core/legend/legend.rb +0 -5
  223. data/app/concepts/matestack/ui/core/li/li.haml +0 -5
  224. data/app/concepts/matestack/ui/core/li/li.rb +0 -6
  225. data/app/concepts/matestack/ui/core/link/link.haml +0 -5
  226. data/app/concepts/matestack/ui/core/link/link.rb +0 -23
  227. data/app/concepts/matestack/ui/core/main/main.haml +0 -3
  228. data/app/concepts/matestack/ui/core/main/main.rb +0 -4
  229. data/app/concepts/matestack/ui/core/map/map.haml +0 -3
  230. data/app/concepts/matestack/ui/core/map/map.rb +0 -5
  231. data/app/concepts/matestack/ui/core/mark/mark.haml +0 -5
  232. data/app/concepts/matestack/ui/core/mark/mark.rb +0 -5
  233. data/app/concepts/matestack/ui/core/meter/meter.haml +0 -4
  234. data/app/concepts/matestack/ui/core/meter/meter.rb +0 -5
  235. data/app/concepts/matestack/ui/core/nav/nav.haml +0 -3
  236. data/app/concepts/matestack/ui/core/nav/nav.rb +0 -4
  237. data/app/concepts/matestack/ui/core/noscript/noscript.haml +0 -5
  238. data/app/concepts/matestack/ui/core/noscript/noscript.rb +0 -5
  239. data/app/concepts/matestack/ui/core/object/object.haml +0 -1
  240. data/app/concepts/matestack/ui/core/object/object.rb +0 -5
  241. data/app/concepts/matestack/ui/core/ol/ol.haml +0 -3
  242. data/app/concepts/matestack/ui/core/ol/ol.rb +0 -5
  243. data/app/concepts/matestack/ui/core/onclick/onclick.haml +0 -2
  244. data/app/concepts/matestack/ui/core/onclick/onclick.rb +0 -6
  245. data/app/concepts/matestack/ui/core/optgroup/optgroup.haml +0 -3
  246. data/app/concepts/matestack/ui/core/optgroup/optgroup.rb +0 -5
  247. data/app/concepts/matestack/ui/core/option/option.haml +0 -5
  248. data/app/concepts/matestack/ui/core/option/option.rb +0 -6
  249. data/app/concepts/matestack/ui/core/output/output.haml +0 -5
  250. data/app/concepts/matestack/ui/core/output/output.rb +0 -6
  251. data/app/concepts/matestack/ui/core/page/content/content.rb +0 -28
  252. data/app/concepts/matestack/ui/core/page/page.haml +0 -3
  253. data/app/concepts/matestack/ui/core/page/page.rb +0 -30
  254. data/app/concepts/matestack/ui/core/paragraph/paragraph.haml +0 -5
  255. data/app/concepts/matestack/ui/core/paragraph/paragraph.rb +0 -5
  256. data/app/concepts/matestack/ui/core/param/param.haml +0 -1
  257. data/app/concepts/matestack/ui/core/param/param.rb +0 -5
  258. data/app/concepts/matestack/ui/core/partial/partial.haml +0 -2
  259. data/app/concepts/matestack/ui/core/partial/partial.rb +0 -4
  260. data/app/concepts/matestack/ui/core/picture/picture.haml +0 -3
  261. data/app/concepts/matestack/ui/core/picture/picture.rb +0 -4
  262. data/app/concepts/matestack/ui/core/plain/plain.rb +0 -9
  263. data/app/concepts/matestack/ui/core/pre/pre.haml +0 -5
  264. data/app/concepts/matestack/ui/core/pre/pre.rb +0 -5
  265. data/app/concepts/matestack/ui/core/progress/progress.haml +0 -3
  266. data/app/concepts/matestack/ui/core/progress/progress.rb +0 -5
  267. data/app/concepts/matestack/ui/core/q/q.haml +0 -5
  268. data/app/concepts/matestack/ui/core/q/q.rb +0 -6
  269. data/app/concepts/matestack/ui/core/rp/rp.haml +0 -5
  270. data/app/concepts/matestack/ui/core/rp/rp.rb +0 -5
  271. data/app/concepts/matestack/ui/core/rt/rt.haml +0 -5
  272. data/app/concepts/matestack/ui/core/rt/rt.rb +0 -5
  273. data/app/concepts/matestack/ui/core/ruby/ruby.haml +0 -5
  274. data/app/concepts/matestack/ui/core/ruby/ruby.rb +0 -5
  275. data/app/concepts/matestack/ui/core/s/s.haml +0 -5
  276. data/app/concepts/matestack/ui/core/s/s.rb +0 -6
  277. data/app/concepts/matestack/ui/core/samp/samp.haml +0 -5
  278. data/app/concepts/matestack/ui/core/samp/samp.rb +0 -5
  279. data/app/concepts/matestack/ui/core/section/section.haml +0 -3
  280. data/app/concepts/matestack/ui/core/section/section.rb +0 -4
  281. data/app/concepts/matestack/ui/core/select/select.haml +0 -3
  282. data/app/concepts/matestack/ui/core/select/select.rb +0 -7
  283. data/app/concepts/matestack/ui/core/slot/slot.haml +0 -2
  284. data/app/concepts/matestack/ui/core/slot/slot.rb +0 -4
  285. data/app/concepts/matestack/ui/core/small/small.haml +0 -5
  286. data/app/concepts/matestack/ui/core/small/small.rb +0 -5
  287. data/app/concepts/matestack/ui/core/span/span.haml +0 -5
  288. data/app/concepts/matestack/ui/core/span/span.rb +0 -5
  289. data/app/concepts/matestack/ui/core/strong/strong.haml +0 -5
  290. data/app/concepts/matestack/ui/core/strong/strong.rb +0 -5
  291. data/app/concepts/matestack/ui/core/sub/sub.haml +0 -5
  292. data/app/concepts/matestack/ui/core/sub/sub.rb +0 -5
  293. data/app/concepts/matestack/ui/core/summary/summary.haml +0 -5
  294. data/app/concepts/matestack/ui/core/summary/summary.rb +0 -5
  295. data/app/concepts/matestack/ui/core/sup/sup.haml +0 -5
  296. data/app/concepts/matestack/ui/core/sup/sup.rb +0 -5
  297. data/app/concepts/matestack/ui/core/table/table.haml +0 -3
  298. data/app/concepts/matestack/ui/core/table/table.rb +0 -4
  299. data/app/concepts/matestack/ui/core/tbody/tbody.haml +0 -3
  300. data/app/concepts/matestack/ui/core/tbody/tbody.rb +0 -4
  301. data/app/concepts/matestack/ui/core/td/td.haml +0 -5
  302. data/app/concepts/matestack/ui/core/td/td.rb +0 -6
  303. data/app/concepts/matestack/ui/core/template/template.haml +0 -3
  304. data/app/concepts/matestack/ui/core/template/template.rb +0 -4
  305. data/app/concepts/matestack/ui/core/textarea/textarea.haml +0 -5
  306. data/app/concepts/matestack/ui/core/textarea/textarea.rb +0 -10
  307. data/app/concepts/matestack/ui/core/tfoot/tfoot.haml +0 -3
  308. data/app/concepts/matestack/ui/core/tfoot/tfoot.rb +0 -4
  309. data/app/concepts/matestack/ui/core/th/th.haml +0 -5
  310. data/app/concepts/matestack/ui/core/th/th.rb +0 -6
  311. data/app/concepts/matestack/ui/core/thead/thead.haml +0 -3
  312. data/app/concepts/matestack/ui/core/thead/thead.rb +0 -4
  313. data/app/concepts/matestack/ui/core/time/time.haml +0 -3
  314. data/app/concepts/matestack/ui/core/time/time.rb +0 -5
  315. data/app/concepts/matestack/ui/core/toggle/toggle.haml +0 -2
  316. data/app/concepts/matestack/ui/core/toggle/toggle.rb +0 -13
  317. data/app/concepts/matestack/ui/core/tr/tr.haml +0 -3
  318. data/app/concepts/matestack/ui/core/tr/tr.rb +0 -4
  319. data/app/concepts/matestack/ui/core/transition/transition.haml +0 -5
  320. data/app/concepts/matestack/ui/core/transition/transition.rb +0 -38
  321. data/app/concepts/matestack/ui/core/u/u.haml +0 -5
  322. data/app/concepts/matestack/ui/core/u/u.rb +0 -6
  323. data/app/concepts/matestack/ui/core/ul/ul.haml +0 -3
  324. data/app/concepts/matestack/ui/core/ul/ul.rb +0 -4
  325. data/app/concepts/matestack/ui/core/unescaped/unescaped.rb +0 -9
  326. data/app/concepts/matestack/ui/core/var/var.haml +0 -5
  327. data/app/concepts/matestack/ui/core/var/var.rb +0 -5
  328. data/app/concepts/matestack/ui/core/video/video.haml +0 -3
  329. data/app/concepts/matestack/ui/core/video/video.rb +0 -13
  330. data/app/concepts/matestack/ui/core/view/view.haml +0 -1
  331. data/app/concepts/matestack/ui/core/view/view.rb +0 -30
  332. data/app/concepts/matestack/ui/core/wbr/wbr.haml +0 -5
  333. data/app/concepts/matestack/ui/core/wbr/wbr.rb +0 -5
  334. data/app/concepts/matestack/ui/core/youtube/youtube.haml +0 -1
  335. data/app/concepts/matestack/ui/core/youtube/youtube.rb +0 -28
  336. data/app/helpers/matestack/ui/core/application_helper.rb +0 -111
  337. data/app/javascript/matestack-ui-core/index.js +0 -32
  338. data/app/javascript/matestack-ui-core/styles/index.scss +0 -5
  339. data/app/javascript/packs/matestack-ui-core.js +0 -8
  340. data/app/lib/matestack/ui/app.rb +0 -1
  341. data/app/lib/matestack/ui/component.rb +0 -1
  342. data/app/lib/matestack/ui/core/has_view_context.rb +0 -16
  343. data/app/lib/matestack/ui/core/html_attributes.rb +0 -43
  344. data/app/lib/matestack/ui/core/properties.rb +0 -161
  345. data/app/lib/matestack/ui/core/rendering/default_renderer_class_determiner.rb +0 -33
  346. data/app/lib/matestack/ui/core/rendering/main_renderer.rb +0 -203
  347. data/app/lib/matestack/ui/dynamic_actionview_component.rb +0 -1
  348. data/app/lib/matestack/ui/dynamic_component.rb +0 -1
  349. data/app/lib/matestack/ui/isolated_component.rb +0 -1
  350. data/app/lib/matestack/ui/page.rb +0 -1
  351. data/app/lib/matestack/ui/static_actionview_component.rb +0 -1
  352. data/app/lib/matestack/ui/static_component.rb +0 -1
  353. data/app/lib/matestack/ui/vue_js_component.rb +0 -1
  354. data/config/routes.rb +0 -2
  355. data/lib/generators/matestack/app/USAGE +0 -21
  356. data/lib/generators/matestack/app/app_generator.rb +0 -25
  357. data/lib/generators/matestack/app/templates/app/controllers/%file_name%_controller.rb.tt +0 -5
  358. data/lib/generators/matestack/app/templates/app/matestack/apps/%file_name%.rb.tt +0 -28
  359. data/lib/generators/matestack/component/USAGE +0 -20
  360. data/lib/generators/matestack/component/component_generator.rb +0 -29
  361. data/lib/generators/matestack/component/templates/app/matestack/components/%namespace%/%file_name%.haml.tt +0 -5
  362. data/lib/generators/matestack/component/templates/app/matestack/components/%namespace%/%file_name%.js.tt +0 -17
  363. data/lib/generators/matestack/component/templates/app/matestack/components/%namespace%/%file_name%.rb.tt +0 -11
  364. data/lib/generators/matestack/component/templates/app/matestack/components/%namespace%/%file_name%.scss.tt +0 -1
  365. data/lib/generators/matestack/core/component/USAGE +0 -16
  366. data/lib/generators/matestack/core/component/component_generator.rb +0 -23
  367. data/lib/generators/matestack/core/component/templates/app/concepts/matestack/ui/core/%file_name%/%file_name%.haml.tt +0 -5
  368. data/lib/generators/matestack/core/component/templates/app/concepts/matestack/ui/core/%file_name%/%file_name%.rb.tt +0 -4
  369. data/lib/generators/matestack/core/component/templates/docs/components/%file_name%.md.tt +0 -45
  370. data/lib/generators/matestack/core/component/templates/spec/usage/components/%file_name%_spec.rb +0 -31
  371. data/lib/generators/matestack/page/USAGE +0 -28
  372. data/lib/generators/matestack/page/page_generator.rb +0 -54
  373. data/lib/generators/matestack/page/templates/app/matestack/pages/%app_name%/%namespace%/%file_name%.rb.tt +0 -29
  374. data/lib/matestack/ui/core/cell.rb +0 -31
  375. data/lib/matestack/ui/core/component/registry.rb +0 -47
  376. data/lib/matestack/ui/core/components.rb +0 -271
  377. data/lib/matestack/ui/core/dsl.rb +0 -6
  378. data/lib/matestack/ui/core/engine.rb +0 -35
  379. data/lib/tasks/matestack/ui/core_tasks.rake +0 -4
  380. data/vendor/assets/javascripts/dist/manifest.json +0 -18
  381. data/vendor/assets/javascripts/dist/manifest.json.br +0 -0
  382. data/vendor/assets/javascripts/dist/manifest.json.gz +0 -0
  383. data/vendor/assets/javascripts/dist/matestack-ui-core.css +0 -3
  384. data/vendor/assets/javascripts/dist/matestack-ui-core.css.map +0 -1
  385. data/vendor/assets/javascripts/dist/matestack-ui-core.js +0 -17734
  386. data/vendor/assets/javascripts/dist/matestack-ui-core.js.map +0 -1
  387. data/vendor/assets/javascripts/dist/matestack-ui-core.min.css +0 -0
  388. data/vendor/assets/javascripts/dist/matestack-ui-core.min.js +0 -3
  389. data/vendor/assets/javascripts/dist/matestack-ui-core.min.js.LICENSE.txt +0 -18
  390. data/vendor/assets/javascripts/dist/matestack-ui-core.min.js.br +0 -0
  391. data/vendor/assets/javascripts/dist/matestack-ui-core.min.js.gz +0 -0
  392. data/vendor/assets/javascripts/dist/matestack-ui-core.min.js.map +0 -1
  393. data/vendor/assets/javascripts/dist/matestack-ui-core.min.js.map.br +0 -0
  394. data/vendor/assets/javascripts/dist/matestack-ui-core.min.js.map.gz +0 -0
  395. data/vendor/assets/javascripts/matestack-ui-core.js.erb +0 -2
  396. data/vendor/assets/stylesheets/dist +0 -1
  397. data/vendor/assets/stylesheets/matestack-ui-core.css.erb +0 -2
@@ -1,8 +1,8 @@
1
1
  import Vue from 'vue/dist/vue.esm'
2
2
  import axios from 'axios'
3
3
  import VRuntimeTemplate from "v-runtime-template"
4
- import matestackEventHub from '../js/event-hub'
5
- import componentMixin from '../component/component'
4
+ import matestackEventHub from '../event_hub'
5
+ import componentMixin from './mixin'
6
6
 
7
7
  const componentDef = {
8
8
  mixins: [componentMixin],
@@ -25,15 +25,15 @@ const componentDef = {
25
25
  }
26
26
  this.showing = true
27
27
  this.event.data = event_data
28
- if(this.componentConfig["defer"] != undefined){
29
- if(!isNaN(this.componentConfig["defer"])){
28
+ if(this.props["defer"] != undefined){
29
+ if(!isNaN(this.props["defer"])){
30
30
  this.startDefer()
31
31
  }
32
32
  }
33
- if(this.componentConfig["hide_after"] != undefined){
33
+ if(this.props["hide_after"] != undefined){
34
34
  self.hideAfterTimeout = setTimeout(function () {
35
35
  self.hide()
36
- }, parseInt(this.componentConfig["hide_after"]));
36
+ }, parseInt(this.props["hide_after"]));
37
37
  }
38
38
  },
39
39
  hide: function(){
@@ -45,7 +45,7 @@ const componentDef = {
45
45
  self.loading = true;
46
46
  setTimeout(function () {
47
47
  self.rerender()
48
- }, parseInt(this.componentConfig["defer"]));
48
+ }, parseInt(this.props["defer"]));
49
49
  },
50
50
  rerender: function(){
51
51
  var self = this;
@@ -57,48 +57,48 @@ const componentDef = {
57
57
  'X-CSRF-Token': document.getElementsByName("csrf-token")[0].getAttribute('content')
58
58
  },
59
59
  params: {
60
- "component_key": self.componentConfig["component_key"],
61
- "component_class": self.componentConfig["parent_class"]
60
+ "component_key": self.props["component_key"],
61
+ "component_class": self.props["parent_class"]
62
62
  }
63
63
  })
64
64
  .then(function(response){
65
65
  var tmp_dom_element = document.createElement('div');
66
66
  tmp_dom_element.innerHTML = response['data'];
67
- var template = tmp_dom_element.querySelector('#' + self.componentConfig["component_key"]).outerHTML;
67
+ var template = tmp_dom_element.querySelector('#' + self.props["component_key"]).outerHTML;
68
68
  self.loading = false;
69
69
  self.asyncTemplate = template;
70
70
  })
71
71
  .catch(function(error){
72
72
  console.log(error)
73
- matestackEventHub.$emit('async_rerender_error', { id: self.componentConfig["component_key"] })
73
+ matestackEventHub.$emit('async_rerender_error', { id: self.props["component_key"] })
74
74
  })
75
75
  }
76
76
  },
77
77
  created: function () {
78
78
  const self = this
79
- self.registerEvents(this.componentConfig['show_on'], self.show)
80
- self.registerEvents(this.componentConfig['hide_on'], self.hide)
81
- self.registerEvents(this.componentConfig['rerender_on'], self.rerender)
82
- if(this.componentConfig["show_on"] != undefined){
79
+ self.registerEvents(this.props['show_on'], self.show)
80
+ self.registerEvents(this.props['hide_on'], self.hide)
81
+ self.registerEvents(this.props['rerender_on'], self.rerender)
82
+ if(this.props["show_on"] != undefined){
83
83
  this.showing = false
84
84
  }
85
- if(this.componentConfig["defer"] != undefined){
86
- if(!isNaN(this.componentConfig["defer"])){
87
- if (this.componentConfig["show_on"] == undefined){
85
+ if(this.props["defer"] != undefined){
86
+ if(!isNaN(this.props["defer"])){
87
+ if (this.props["show_on"] == undefined){
88
88
  this.startDefer()
89
89
  }
90
90
  }
91
91
  }
92
- if(this.componentConfig["init_show"] == true){
92
+ if(this.props["init_show"] == true){
93
93
  this.showing = true
94
94
  }
95
95
  },
96
96
  beforeDestroy: function() {
97
97
  const self = this
98
98
  clearTimeout(self.hideAfterTimeout)
99
- self.removeEvents(this.componentConfig["show_on"], self.show)
100
- self.removeEvents(this.componentConfig["hide_on"], self.hide)
101
- self.removeEvents(this.componentConfig["rerender_on"], self.rerender)
99
+ self.removeEvents(this.props["show_on"], self.show)
100
+ self.removeEvents(this.props["hide_on"], self.hide)
101
+ self.removeEvents(this.props["rerender_on"], self.rerender)
102
102
  },
103
103
  components: {
104
104
  VRuntimeTemplate: VRuntimeTemplate
@@ -0,0 +1,84 @@
1
+ module Matestack
2
+ module Ui
3
+ module VueJs
4
+ module Components
5
+ class Async < Matestack::Ui::VueJs::Vue
6
+ vue_name 'matestack-ui-core-async'
7
+
8
+ required :id
9
+ optional :show_on, :hide_on, :rerender_on, :defer
10
+
11
+ # register itself as an async component in the context
12
+ def initialize(html_tag = nil, text = nil, options = {}, &block)
13
+ super(html_tag, text, options, &block)
14
+ Matestack::Ui::Core::Context.async_components = {} if Matestack::Ui::Core::Context.async_components.nil?
15
+ Matestack::Ui::Core::Context.async_components[self.ctx.id] = self
16
+ end
17
+
18
+ def create_children(&block)
19
+ self.response &block
20
+ end
21
+
22
+ def response
23
+ if params[:component_key] && !is_not_requested?
24
+ div async_attributes do
25
+ yield
26
+ end
27
+ else
28
+ vue_component do
29
+ div class: 'matestack-async-component-container', 'v-bind:class': '{ "loading": loading === true }' do
30
+ div class: 'matestack-async-component-wrapper', 'v-if': 'asyncTemplate == null', 'v-bind:class': '{ "loading": loading === true }' do
31
+ div async_attributes do
32
+ if params[:component_key]
33
+ # we need to yield if a request is looking for a async component, indicated through present params[:component_key]
34
+ # the requested component could be hidden within this deferred async!
35
+ yield
36
+ else
37
+ yield unless is_deferred?
38
+ end
39
+ end
40
+ end
41
+ div class: 'matestack-async-component-wrapper', 'v-if': 'asyncTemplate != null', 'v-bind:class': '{ "loading": loading === true }' do
42
+ Matestack::Ui::Core::Base.new('v-runtime-template', ':template': 'asyncTemplate')
43
+ end
44
+ end
45
+ end
46
+ end
47
+ end
48
+
49
+ def async_attributes
50
+ options.merge({
51
+ id: ctx.id,
52
+ class: 'matestack-async-component-root',
53
+ 'v-if': 'showing'
54
+ })
55
+ end
56
+
57
+ def vue_props
58
+ {
59
+ component_key: ctx.id,
60
+ show_on: ctx.show_on,
61
+ hide_on: ctx.hide_on,
62
+ rerender_on: ctx.rerender_on,
63
+ defer: ctx.defer,
64
+ parent_class: isolated_parent ? isolated_parent.class.to_s : nil,
65
+ }
66
+ end
67
+
68
+ def is_deferred?
69
+ ctx.defer
70
+ end
71
+
72
+ def is_not_requested?
73
+ params[:component_key].present? && params[:component_key] != ctx.id
74
+ end
75
+
76
+ def isolated_parent
77
+ Matestack::Ui::Core::Context.isolated_parent
78
+ end
79
+
80
+ end
81
+ end
82
+ end
83
+ end
84
+ end
@@ -1,7 +1,7 @@
1
1
  import Vue from 'vue/dist/vue.esm'
2
2
  import VRuntimeTemplate from "v-runtime-template"
3
- import matestackEventHub from '../js/event-hub'
4
- import componentMixin from '../component/component'
3
+ import matestackEventHub from '../event_hub'
4
+ import componentMixin from './mixin'
5
5
 
6
6
  const componentDef = {
7
7
  mixins: [componentMixin],
@@ -47,7 +47,7 @@ const componentDef = {
47
47
  var html = this.formatPayload(payload)
48
48
  html.forEach(function(elem){
49
49
  var dom_elem = document.createElement('div')
50
- dom_elem.innerHTML = elem
50
+ dom_elem.innerHTML = elem.replace(/^\s+|\s+$/g, '')
51
51
  var id = dom_elem.firstChild.id
52
52
  var old_elem = self.cableTemplateDomElement.querySelector('#' + id)
53
53
  old_elem.parentNode.replaceChild(dom_elem.firstChild, old_elem)
@@ -73,22 +73,22 @@ const componentDef = {
73
73
  const self = this
74
74
  var dom_elem = document.createElement('div')
75
75
  dom_elem.innerHTML = this.initialTemplate
76
- this.cableTemplateDomElement = dom_elem.querySelector("#" + this.componentConfig["id"])
76
+ this.cableTemplateDomElement = dom_elem.querySelector("#" + this.props["id"])
77
77
  this.cableTemplate = this.cableTemplateDomElement.outerHTML
78
- this.registerEvents(this.componentConfig['append_on'], self.append)
79
- this.registerEvents(this.componentConfig['prepend_on'], self.prepend)
80
- this.registerEvents(this.componentConfig['delete_on'], self.delete)
81
- this.registerEvents(this.componentConfig['update_on'], self.update)
82
- this.registerEvents(this.componentConfig['replace_on'], self.replace)
78
+ this.registerEvents(this.props['append_on'], self.append)
79
+ this.registerEvents(this.props['prepend_on'], self.prepend)
80
+ this.registerEvents(this.props['delete_on'], self.delete)
81
+ this.registerEvents(this.props['update_on'], self.update)
82
+ this.registerEvents(this.props['replace_on'], self.replace)
83
83
  },
84
84
  beforeDestroy: function() {
85
85
  const self = this
86
86
  this.cableTemplate = null
87
- this.removeEvents(this.componentConfig['append_on'], self.append)
88
- this.removeEvents(this.componentConfig['prepend_on'], self.prepend)
89
- this.removeEvents(this.componentConfig['delete_on'], self.delete)
90
- this.removeEvents(this.componentConfig['update_on'], self.update)
91
- this.removeEvents(this.componentConfig['replace_on'], self.replace)
87
+ this.removeEvents(this.props['append_on'], self.append)
88
+ this.removeEvents(this.props['prepend_on'], self.prepend)
89
+ this.removeEvents(this.props['delete_on'], self.delete)
90
+ this.removeEvents(this.props['update_on'], self.update)
91
+ this.removeEvents(this.props['replace_on'], self.replace)
92
92
  },
93
93
  components: {
94
94
  VRuntimeTemplate: VRuntimeTemplate
@@ -0,0 +1,69 @@
1
+ module Matestack
2
+ module Ui
3
+ module VueJs
4
+ module Components
5
+ class Cable < Matestack::Ui::VueJs::Vue
6
+ vue_name 'matestack-ui-core-cable'
7
+
8
+ attr_accessor :block_content
9
+
10
+ required :id
11
+ optional :append_on, :prepend_on, :delete_on, :update_on, :replace_on
12
+
13
+ def create_children(&block)
14
+ # first render block content
15
+ self.block_content = content(&block).render_content if block_given?
16
+ super
17
+ end
18
+
19
+ def content(&block)
20
+ Matestack::Ui::Core::Base.new(:without_parent, nil, nil) do
21
+ div(class: 'matestack-cable-component-root', id: ctx.id, &block)
22
+ end
23
+ end
24
+
25
+ def component_attributes
26
+ super.merge('v-bind:initial-template': "#{self.block_content.to_json}")
27
+ end
28
+
29
+ def response
30
+ div container_attributes do
31
+ div wrapper_attributes do
32
+ Matestack::Ui::Core::Base.new('v-runtime-template', ':template': 'cableTemplate')
33
+ end
34
+ end
35
+ end
36
+
37
+ def container_attributes
38
+ {
39
+ class: 'matestack-cable-component-container',
40
+ 'v-bind:class': '{ loading: loading === true }'
41
+ }
42
+ end
43
+
44
+ def wrapper_attributes
45
+ {
46
+ class: 'matestack-cable-component-wrapper',
47
+ 'v-if': 'cableTemplate != null',
48
+ 'v-bind:class': '{ loading: loading === true }'
49
+ }
50
+ end
51
+
52
+ def vue_props
53
+ {
54
+ id: ctx.id,
55
+ component_key: ctx.id,
56
+ # events
57
+ append_on: ctx.append_on,
58
+ prepend_on: ctx.prepend_on,
59
+ delete_on: ctx.delete_on,
60
+ update_on: ctx.update_on,
61
+ replace_on: ctx.replace_on,
62
+ }
63
+ end
64
+
65
+ end
66
+ end
67
+ end
68
+ end
69
+ end
@@ -1,8 +1,7 @@
1
1
  import Vue from 'vue/dist/vue.esm'
2
- import matestackEventHub from '../../js/event-hub'
3
- import queryParamsHelper from '../../js/helpers/query-params-helper'
4
- import componentMixin from '../../component/component'
5
- // import asyncMixin from '../../async/async'
2
+ import matestackEventHub from '../../event_hub'
3
+ import queryParamsHelper from '../../helpers/query_params_helper'
4
+ import componentMixin from '../mixin'
6
5
 
7
6
  const componentDef = {
8
7
  mixins: [componentMixin],
@@ -18,9 +17,9 @@ const componentDef = {
18
17
  next: function(){
19
18
  if (this.currentTo() < this.currentCount()){
20
19
  this.currentOffset += this.currentLimit
21
- var url = queryParamsHelper.updateQueryParams(this.componentConfig["id"] + "-offset", this.currentOffset)
20
+ var url = queryParamsHelper.updateQueryParams(this.props["id"] + "-offset", this.currentOffset)
22
21
  window.history.pushState({matestackApp: true, url: url}, null, url);
23
- matestackEventHub.$emit(this.componentConfig["id"] + "-update")
22
+ matestackEventHub.$emit(this.props["id"] + "-update")
24
23
  }
25
24
  },
26
25
  previous: function(){
@@ -30,9 +29,9 @@ const componentDef = {
30
29
  } else {
31
30
  this.currentOffset -= this.currentLimit
32
31
  }
33
- var url = queryParamsHelper.updateQueryParams(this.componentConfig["id"] + "-offset", this.currentOffset)
32
+ var url = queryParamsHelper.updateQueryParams(this.props["id"] + "-offset", this.currentOffset)
34
33
  window.history.pushState({matestackApp: true, url: url}, null, url);
35
- matestackEventHub.$emit(this.componentConfig["id"] + "-update")
34
+ matestackEventHub.$emit(this.props["id"] + "-update")
36
35
  }
37
36
  },
38
37
  currentTo: function(){
@@ -52,40 +51,40 @@ const componentDef = {
52
51
  },
53
52
  goToPage: function(page){
54
53
  this.currentOffset = parseInt(this.currentLimit) * (parseInt(page)-1)
55
- var url = queryParamsHelper.updateQueryParams(this.componentConfig["id"] + "-offset", this.currentOffset)
54
+ var url = queryParamsHelper.updateQueryParams(this.props["id"] + "-offset", this.currentOffset)
56
55
  window.history.pushState({matestackApp: true, url: url}, null, url);
57
- matestackEventHub.$emit(this.componentConfig["id"] + "-update")
56
+ matestackEventHub.$emit(this.props["id"] + "-update")
58
57
  }
59
58
  },
60
59
  mounted: function(){
61
- if(queryParamsHelper.getQueryParam(this.componentConfig["id"] + "-offset") != null){
62
- this.currentOffset = parseInt(queryParamsHelper.getQueryParam(this.componentConfig["id"] + "-offset"))
60
+ if(queryParamsHelper.getQueryParam(this.props["id"] + "-offset") != null){
61
+ this.currentOffset = parseInt(queryParamsHelper.getQueryParam(this.props["id"] + "-offset"))
63
62
  } else {
64
- if(this.componentConfig["init_offset"] != undefined){
65
- this.currentOffset = this.componentConfig["init_offset"]
63
+ if(this.props["init_offset"] != undefined){
64
+ this.currentOffset = this.props["init_offset"]
66
65
  } else {
67
66
  this.currentOffset = 0
68
67
  }
69
68
  }
70
69
 
71
- if(queryParamsHelper.getQueryParam(this.componentConfig["id"] + "-limit") != null){
72
- this.currentOffset = parseInt(queryParamsHelper.getQueryParam(this.componentConfig["id"] + "-limit"))
70
+ if(queryParamsHelper.getQueryParam(this.props["id"] + "-limit") != null){
71
+ this.currentOffset = parseInt(queryParamsHelper.getQueryParam(this.props["id"] + "-limit"))
73
72
  } else {
74
- if(this.componentConfig["init_limit"] != undefined){
75
- this.currentLimit = this.componentConfig["init_limit"]
73
+ if(this.props["init_limit"] != undefined){
74
+ this.currentLimit = this.props["init_limit"]
76
75
  } else {
77
76
  this.currentLimit = 10
78
77
  }
79
78
  }
80
79
 
81
- if(this.componentConfig["filtered_count"] != undefined){
82
- this.currentFilteredCount = this.componentConfig["filtered_count"]
80
+ if(this.props["filtered_count"] != undefined){
81
+ this.currentFilteredCount = this.props["filtered_count"]
83
82
  if(this.currentOffset >= this.currentFilteredCount){
84
83
  this.previous()
85
84
  }
86
85
  }
87
- if(this.componentConfig["base_count"] != undefined){
88
- this.currentBaseCount = this.componentConfig["base_count"]
86
+ if(this.props["base_count"] != undefined){
87
+ this.currentBaseCount = this.props["base_count"]
89
88
  if(this.currentOffset >= this.currentBaseCount){
90
89
  this.previous()
91
90
  }
@@ -0,0 +1,32 @@
1
+ module Matestack
2
+ module Ui
3
+ module VueJs
4
+ module Components
5
+ module Collection
6
+ class Content < Matestack::Ui::VueJs::Vue
7
+ vue_name 'matestack-ui-core-collection-content'
8
+
9
+ required :id
10
+ optional :init_limit, :filtered_count, :base_count
11
+
12
+ def response
13
+ div class: "matestack-ui-core-collection-content" do
14
+ yield
15
+ end
16
+ end
17
+
18
+ def vue_props
19
+ {
20
+ id: ctx.id,
21
+ init_limit: ctx.init_limit,
22
+ filtered_count: ctx.filtered_count,
23
+ base_count: ctx.base_count
24
+ }
25
+ end
26
+
27
+ end
28
+ end
29
+ end
30
+ end
31
+ end
32
+ end
@@ -0,0 +1,45 @@
1
+ import Vue from 'vue/dist/vue.esm'
2
+ import matestackEventHub from '../../event_hub'
3
+ import queryParamsHelper from '../../helpers/query_params_helper'
4
+
5
+ import formMixin from '../form/form'
6
+
7
+ const componentDef = {
8
+ mixins: [formMixin],
9
+ methods: {
10
+ perform: function(){
11
+ var url;
12
+ var filter = this.data
13
+ for (var key in this.data) {
14
+ url = queryParamsHelper.updateQueryParams(this.props["id"] + "-filter-" + key, JSON.stringify(this.data[key]), url)
15
+ }
16
+ url = queryParamsHelper.updateQueryParams(this.props["id"] + "-offset", 0, url)
17
+ window.history.pushState({matestackApp: true, url: url}, null, url);
18
+ matestackEventHub.$emit(this.props["id"] + "-update")
19
+ },
20
+ resetFilter: function(){
21
+ var url;
22
+ for (var key in this.data) {
23
+ url = queryParamsHelper.updateQueryParams(this.props["id"] + "-filter-" + key, null, url)
24
+ this.data[key] = null;
25
+ this.$forceUpdate();
26
+ }
27
+ this.initValues();
28
+ window.history.pushState({matestackApp: true, url: url}, null, url);
29
+ matestackEventHub.$emit(this.props["id"] + "-update")
30
+ }
31
+ },
32
+ created: function(){
33
+ var self = this;
34
+ var queryParamsObject = queryParamsHelper.queryParamsToObject()
35
+ Object.keys(queryParamsObject).forEach(function(key){
36
+ if (key.startsWith(self.props["id"] + "-filter-")){
37
+ self.data[key.replace(self.props["id"] + "-filter-", "")] = queryParamsObject[key]
38
+ }
39
+ })
40
+ }
41
+ }
42
+
43
+ let component = Vue.component('matestack-ui-core-collection-filter', componentDef)
44
+
45
+ export default componentDef