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.
- checksums.yaml +4 -4
- data/LICENSE +8 -0
- data/README.md +28 -204
- data/Rakefile +32 -0
- data/app/concepts/matestack/ui/core/abbr/abbr.haml +2 -2
- data/app/concepts/matestack/ui/core/abbr/abbr.rb +3 -2
- data/app/concepts/matestack/ui/core/action/action.js +114 -11
- data/app/concepts/matestack/ui/core/action/action.rb +41 -13
- data/app/concepts/matestack/ui/core/{component/response_dynamic.haml → actionview/dynamic.haml} +2 -3
- data/app/concepts/matestack/ui/core/actionview/dynamic.rb +28 -0
- data/app/concepts/matestack/ui/core/{component → actionview}/static.haml +0 -0
- data/app/concepts/matestack/ui/core/actionview/static.rb +28 -0
- data/app/concepts/matestack/ui/core/address/address.haml +2 -2
- data/app/concepts/matestack/ui/core/address/address.rb +1 -1
- data/app/concepts/matestack/ui/core/app/app.haml +2 -3
- data/app/concepts/matestack/ui/core/app/app.js +18 -4
- data/app/concepts/matestack/ui/core/app/app.rb +34 -81
- data/app/concepts/matestack/ui/core/app/location.js +9 -0
- data/app/concepts/matestack/ui/core/app/store.js +35 -6
- data/app/concepts/matestack/ui/core/area/area.haml +1 -0
- data/app/concepts/matestack/ui/core/area/area.rb +20 -0
- data/app/concepts/matestack/ui/core/aside/aside.haml +3 -0
- data/app/concepts/matestack/ui/core/aside/aside.rb +5 -0
- data/app/concepts/matestack/ui/core/async/async.haml +6 -2
- data/app/concepts/matestack/ui/core/async/async.js +64 -8
- data/app/concepts/matestack/ui/core/async/async.rb +29 -4
- data/app/concepts/matestack/ui/core/async/children_wrapper.haml +2 -0
- data/app/concepts/matestack/ui/core/{pg/pg.haml → b/b.haml} +1 -1
- data/app/concepts/matestack/ui/core/b/b.rb +5 -0
- data/app/concepts/matestack/ui/core/bdi/bdi.haml +5 -0
- data/app/concepts/matestack/ui/core/bdi/bdi.rb +4 -0
- data/app/concepts/matestack/ui/core/bdo/bdo.haml +5 -0
- data/app/concepts/matestack/ui/core/bdo/bdo.rb +11 -0
- data/app/concepts/matestack/ui/core/cite/cite.haml +5 -0
- data/app/concepts/matestack/ui/core/cite/cite.rb +5 -0
- data/app/concepts/matestack/ui/core/code/code.haml +5 -0
- data/app/concepts/matestack/ui/core/code/code.rb +5 -0
- data/app/concepts/matestack/ui/core/collection/content/content.js +4 -4
- data/app/concepts/matestack/ui/core/collection/content/content.rb +2 -2
- data/app/concepts/matestack/ui/core/collection/content/page/link/link.rb +4 -2
- data/app/concepts/matestack/ui/core/collection/filter/filter.js +3 -3
- data/app/concepts/matestack/ui/core/collection/filter/filter.rb +4 -5
- data/app/concepts/matestack/ui/core/collection/filter/select/select.haml +10 -0
- data/app/concepts/matestack/ui/core/collection/filter/select/select.rb +29 -0
- data/app/concepts/matestack/ui/core/collection/helper.rb +14 -6
- data/app/concepts/matestack/ui/core/collection/order/order.js +4 -4
- data/app/concepts/matestack/ui/core/collection/order/order.rb +4 -5
- data/app/concepts/matestack/ui/core/collection/order/toggle/indicator/indicator.rb +6 -5
- data/app/concepts/matestack/ui/core/component/anonym-dynamic-component.js +1 -1
- data/app/concepts/matestack/ui/core/component/base.rb +424 -0
- data/app/concepts/matestack/ui/core/component/children.haml +2 -2
- data/app/concepts/matestack/ui/core/component/component.js +1 -55
- data/app/concepts/matestack/ui/core/component/dynamic.haml +1 -1
- data/app/concepts/matestack/ui/core/component/dynamic.rb +24 -239
- data/app/concepts/matestack/ui/core/component/rerender.rb +8 -0
- data/app/concepts/matestack/ui/core/component/static.rb +3 -12
- data/app/concepts/matestack/ui/core/data/data.haml +5 -0
- data/app/concepts/matestack/ui/core/data/data.rb +9 -0
- data/app/concepts/matestack/ui/core/datalist/datalist.haml +3 -0
- data/app/concepts/matestack/ui/core/datalist/datalist.rb +5 -0
- data/app/concepts/matestack/ui/core/dd/dd.haml +5 -0
- data/app/concepts/matestack/ui/core/dd/dd.rb +5 -0
- data/app/concepts/matestack/ui/core/del/del.haml +5 -0
- data/app/concepts/matestack/ui/core/del/del.rb +4 -0
- data/app/concepts/matestack/ui/core/dfn/dfn.haml +5 -0
- data/app/concepts/matestack/ui/core/dfn/dfn.rb +6 -0
- data/app/concepts/matestack/ui/core/dialog/dialog.haml +5 -0
- data/app/concepts/matestack/ui/core/dialog/dialog.rb +9 -0
- data/app/concepts/matestack/ui/core/dl/dl.haml +5 -0
- data/app/concepts/matestack/ui/core/dl/dl.rb +5 -0
- data/app/concepts/matestack/ui/core/dt/dt.haml +5 -0
- data/app/concepts/matestack/ui/core/dt/dt.rb +5 -0
- data/app/concepts/matestack/ui/core/em/em.haml +5 -0
- data/app/concepts/matestack/ui/core/em/em.rb +5 -0
- data/app/concepts/matestack/ui/core/fieldset/fieldset.haml +5 -0
- data/app/concepts/matestack/ui/core/fieldset/fieldset.rb +9 -0
- data/app/concepts/matestack/ui/core/figure/figure.haml +3 -0
- data/app/concepts/matestack/ui/core/figure/figure.rb +5 -0
- data/app/concepts/matestack/ui/core/form/checkbox/checkbox.rb +79 -0
- data/app/concepts/matestack/ui/core/form/form.js +266 -96
- data/app/concepts/matestack/ui/core/form/form.rb +29 -2
- data/app/concepts/matestack/ui/core/form/has_errors.rb +54 -0
- data/app/concepts/matestack/ui/core/form/has_input_html_attributes.rb +13 -0
- data/app/concepts/matestack/ui/core/form/input/input.rb +39 -52
- data/app/concepts/matestack/ui/core/form/radio/radio.rb +71 -0
- data/app/concepts/matestack/ui/core/form/select/select.haml +9 -76
- data/app/concepts/matestack/ui/core/form/select/select.rb +64 -49
- data/app/concepts/matestack/ui/core/form/submit/submit.rb +4 -1
- data/app/concepts/matestack/ui/core/form/textarea/textarea.rb +28 -0
- data/app/concepts/matestack/ui/core/form/utils.rb +47 -0
- data/app/concepts/matestack/ui/core/heading/heading.rb +2 -0
- data/app/concepts/matestack/ui/core/iframe/iframe.haml +5 -0
- data/app/concepts/matestack/ui/core/iframe/iframe.rb +14 -0
- data/app/concepts/matestack/ui/core/img/img.rb +1 -0
- data/app/concepts/matestack/ui/core/input/input.haml +1 -3
- data/app/concepts/matestack/ui/core/input/input.rb +8 -0
- data/app/concepts/matestack/ui/core/ins/ins.haml +5 -0
- data/app/concepts/matestack/ui/core/ins/ins.rb +10 -0
- data/app/concepts/matestack/ui/core/isolated/children_wrapper.haml +2 -0
- data/app/concepts/matestack/ui/core/isolated/isolated.haml +10 -0
- data/app/concepts/matestack/ui/core/isolated/isolated.js +108 -0
- data/app/concepts/matestack/ui/core/isolated/isolated.rb +59 -0
- data/app/concepts/matestack/ui/core/js/core.js +43 -19
- data/app/concepts/matestack/ui/core/kbd/kbd.haml +5 -0
- data/app/concepts/matestack/ui/core/kbd/kbd.rb +4 -0
- data/app/concepts/matestack/ui/core/label/label.rb +6 -1
- data/app/concepts/matestack/ui/core/legend/legend.haml +5 -0
- data/app/concepts/matestack/ui/core/legend/legend.rb +5 -0
- data/app/concepts/matestack/ui/core/link/link.rb +7 -6
- data/app/concepts/matestack/ui/core/{absolute/absolute.haml → map/map.haml} +1 -1
- data/app/concepts/matestack/ui/core/map/map.rb +11 -0
- data/app/concepts/matestack/ui/core/mark/mark.haml +5 -0
- data/app/concepts/matestack/ui/core/mark/mark.rb +4 -0
- data/app/concepts/matestack/ui/core/meter/meter.haml +4 -0
- data/app/concepts/matestack/ui/core/meter/meter.rb +14 -0
- data/app/concepts/matestack/ui/core/noscript/noscript.haml +5 -0
- data/app/concepts/matestack/ui/core/noscript/noscript.rb +5 -0
- data/app/concepts/matestack/ui/core/object/object.haml +1 -0
- data/app/concepts/matestack/ui/core/object/object.rb +15 -0
- data/app/concepts/matestack/ui/core/onclick/onclick.js +2 -3
- data/app/concepts/matestack/ui/core/onclick/onclick.rb +1 -0
- data/app/concepts/matestack/ui/core/optgroup/optgroup.haml +3 -0
- data/app/concepts/matestack/ui/core/optgroup/optgroup.rb +10 -0
- data/app/concepts/matestack/ui/core/option/option.haml +5 -0
- data/app/concepts/matestack/ui/core/option/option.rb +12 -0
- data/app/concepts/matestack/ui/core/output/output.haml +5 -0
- data/app/concepts/matestack/ui/core/output/output.rb +11 -0
- data/app/concepts/matestack/ui/core/page/{content.js → content/content.js} +8 -2
- data/app/concepts/matestack/ui/core/page/content/content.rb +29 -0
- data/app/concepts/matestack/ui/core/page/page.haml +3 -9
- data/app/concepts/matestack/ui/core/page/page.rb +15 -160
- data/app/concepts/matestack/ui/core/param/param.haml +1 -0
- data/app/concepts/matestack/ui/core/param/param.rb +10 -0
- data/app/concepts/matestack/ui/core/picture/picture.haml +3 -0
- data/app/concepts/matestack/ui/core/picture/picture.rb +4 -0
- data/app/concepts/matestack/ui/core/plain/plain.rb +1 -1
- data/app/concepts/matestack/ui/core/pre/pre.haml +5 -0
- data/app/concepts/matestack/ui/core/pre/pre.rb +5 -0
- data/app/concepts/matestack/ui/core/progress/progress.rb +1 -1
- data/app/concepts/matestack/ui/core/q/q.haml +5 -0
- data/app/concepts/matestack/ui/core/q/q.rb +11 -0
- data/app/concepts/matestack/ui/core/rp/rp.haml +5 -0
- data/app/concepts/matestack/ui/core/rp/rp.rb +5 -0
- data/app/concepts/matestack/ui/core/rt/rt.haml +5 -0
- data/app/concepts/matestack/ui/core/rt/rt.rb +5 -0
- data/app/concepts/matestack/ui/core/ruby/ruby.haml +5 -0
- data/app/concepts/matestack/ui/core/ruby/ruby.rb +5 -0
- data/app/concepts/matestack/ui/core/s/s.haml +5 -0
- data/app/concepts/matestack/ui/core/s/s.rb +6 -0
- data/app/concepts/matestack/ui/core/samp/samp.haml +5 -0
- data/app/concepts/matestack/ui/core/samp/samp.rb +4 -0
- data/app/concepts/matestack/ui/core/slot/slot.rb +2 -2
- data/app/concepts/matestack/ui/core/sup/sup.haml +5 -0
- data/app/concepts/matestack/ui/core/sup/sup.rb +5 -0
- data/app/concepts/matestack/ui/core/template/template.haml +3 -0
- data/app/concepts/matestack/ui/core/template/template.rb +4 -0
- data/app/concepts/matestack/ui/core/textarea/textarea.haml +2 -0
- data/app/concepts/matestack/ui/core/textarea/textarea.rb +10 -0
- data/app/concepts/matestack/ui/core/toggle/toggle.haml +2 -0
- data/app/concepts/matestack/ui/core/toggle/toggle.js +71 -0
- data/app/concepts/matestack/ui/core/toggle/toggle.rb +14 -0
- data/app/concepts/matestack/ui/core/transition/transition.js +18 -2
- data/app/concepts/matestack/ui/core/transition/transition.rb +2 -1
- data/app/concepts/matestack/ui/core/u/u.haml +5 -0
- data/app/concepts/matestack/ui/core/u/u.rb +6 -0
- data/app/concepts/matestack/ui/core/unescaped/unescaped.rb +7 -0
- data/app/concepts/matestack/ui/core/var/var.haml +5 -0
- data/app/concepts/matestack/ui/core/var/var.rb +4 -0
- data/app/concepts/matestack/ui/core/video/video.haml +3 -1
- data/app/concepts/matestack/ui/core/video/video.rb +17 -1
- data/app/concepts/matestack/ui/core/view/view.haml +1 -2
- data/app/concepts/matestack/ui/core/view/view.rb +27 -2
- data/app/concepts/matestack/ui/core/wbr/wbr.haml +1 -0
- data/app/concepts/matestack/ui/core/wbr/wbr.rb +4 -0
- data/app/concepts/matestack/ui/core/youtube/youtube.rb +1 -1
- data/app/helpers/matestack/ui/core/application_helper.rb +89 -17
- data/app/javascript/matestack-ui-core/index.js +22 -0
- data/app/javascript/matestack-ui-core/styles/index.scss +5 -0
- data/app/javascript/packs/matestack-ui-core.js +8 -0
- data/app/lib/matestack/ui/component.rb +1 -0
- data/app/lib/matestack/ui/core/has_view_context.rb +14 -0
- data/app/lib/matestack/ui/core/html_attributes.rb +43 -0
- data/app/lib/matestack/ui/core/properties.rb +88 -0
- data/app/lib/matestack/ui/core/rendering/default_renderer_class_determiner.rb +33 -0
- data/app/lib/matestack/ui/core/rendering/main_renderer.rb +199 -0
- data/app/lib/matestack/ui/dynamic_actionview_component.rb +1 -0
- data/app/lib/matestack/ui/isolated_component.rb +1 -0
- data/app/lib/matestack/ui/static_actionview_component.rb +1 -0
- data/app/lib/matestack/ui/vue_js_component.rb +1 -0
- data/config/routes.rb +0 -1
- data/lib/generators/matestack/app/USAGE +21 -0
- data/lib/generators/matestack/app/app_generator.rb +25 -0
- data/lib/generators/{matestack_app/templates/matestack_app_controller.erb → matestack/app/templates/app/controllers/%file_name%_controller.rb.tt} +0 -2
- data/lib/generators/matestack/app/templates/app/matestack/apps/%file_name%.rb.tt +28 -0
- data/lib/generators/matestack/component/USAGE +20 -0
- data/lib/generators/matestack/component/component_generator.rb +29 -0
- data/lib/generators/{matestack_component/templates/matestack_component.haml.erb → matestack/component/templates/app/matestack/components/%namespace%/%file_name%.haml.tt} +0 -0
- data/lib/generators/{matestack_component/templates/matestack_component.js.erb → matestack/component/templates/app/matestack/components/%namespace%/%file_name%.js.tt} +2 -2
- data/lib/generators/matestack/component/templates/app/matestack/components/%namespace%/%file_name%.rb.tt +11 -0
- data/lib/generators/{matestack_component/templates/matestack_component.scss.erb → matestack/component/templates/app/matestack/components/%namespace%/%file_name%.scss.tt} +0 -0
- data/lib/generators/matestack/core/component/USAGE +16 -0
- data/lib/generators/matestack/core/component/component_generator.rb +23 -0
- data/lib/generators/matestack/core/component/templates/app/concepts/matestack/ui/core/%file_name%/%file_name%.haml.tt +5 -0
- data/lib/generators/matestack/core/component/templates/app/concepts/matestack/ui/core/%file_name%/%file_name%.rb.tt +4 -0
- data/lib/generators/matestack/core/component/templates/docs/components/%file_name%.md.tt +45 -0
- data/lib/generators/matestack/core/component/templates/spec/usage/components/%file_name%_spec.rb +31 -0
- data/lib/generators/matestack/page/USAGE +28 -0
- data/lib/generators/matestack/page/page_generator.rb +54 -0
- data/lib/generators/matestack/page/templates/app/matestack/pages/%app_name%/%namespace%/%file_name%.rb.tt +29 -0
- data/lib/matestack/ui/core.rb +5 -2
- data/lib/matestack/ui/core/cell.rb +31 -0
- data/lib/matestack/ui/core/component/registry.rb +47 -0
- data/lib/matestack/ui/core/components.rb +267 -0
- data/lib/matestack/ui/core/dsl.rb +6 -0
- data/lib/matestack/ui/core/engine.rb +16 -0
- data/lib/matestack/ui/core/version.rb +1 -1
- data/vendor/assets/javascripts/dist/manifest.json +18 -0
- data/vendor/assets/javascripts/dist/manifest.json.br +0 -0
- data/vendor/assets/javascripts/dist/manifest.json.gz +0 -0
- data/vendor/assets/javascripts/dist/matestack-ui-core.css +3 -0
- data/vendor/assets/javascripts/dist/matestack-ui-core.css.map +1 -0
- data/vendor/assets/javascripts/dist/matestack-ui-core.js +17060 -0
- data/vendor/assets/javascripts/dist/matestack-ui-core.js.map +1 -0
- data/vendor/assets/javascripts/dist/matestack-ui-core.min.css +0 -0
- data/vendor/assets/javascripts/dist/matestack-ui-core.min.js +3 -0
- data/vendor/assets/javascripts/dist/matestack-ui-core.min.js.LICENSE.txt +18 -0
- data/vendor/assets/javascripts/dist/matestack-ui-core.min.js.gz +0 -0
- data/vendor/assets/javascripts/dist/matestack-ui-core.min.js.map +1 -0
- data/vendor/assets/javascripts/dist/matestack-ui-core.min.js.map.gz +0 -0
- data/vendor/assets/javascripts/matestack-ui-core.js.erb +2 -0
- data/vendor/assets/stylesheets/dist +1 -0
- data/vendor/assets/stylesheets/matestack-ui-core.css.erb +2 -0
- metadata +188 -89
- data/MIT-LICENSE +0 -20
- data/app/concepts/matestack/ui/core/absolute/absolute.rb +0 -17
- data/app/concepts/matestack/ui/core/component/response.haml +0 -2
- data/app/concepts/matestack/ui/core/component/response_dynamic_without_rerender.haml +0 -3
- data/app/concepts/matestack/ui/core/form/inline/inline.haml +0 -6
- data/app/concepts/matestack/ui/core/form/inline/inline.rb +0 -9
- data/app/concepts/matestack/ui/core/form/input/input.haml +0 -27
- data/app/concepts/matestack/ui/core/html/html.haml +0 -3
- data/app/concepts/matestack/ui/core/html/html.js +0 -10
- data/app/concepts/matestack/ui/core/html/html.rb +0 -17
- data/app/concepts/matestack/ui/core/isolate/isolate.haml +0 -2
- data/app/concepts/matestack/ui/core/isolate/isolate.rb +0 -11
- data/app/concepts/matestack/ui/core/page/content.haml +0 -7
- data/app/concepts/matestack/ui/core/page/content.rb +0 -5
- data/app/concepts/matestack/ui/core/pg/pg.rb +0 -5
- data/app/concepts/matestack/ui/core/view/view.js +0 -42
- data/app/lib/matestack/ui/core/app_node.rb +0 -53
- data/app/lib/matestack/ui/core/component_node.rb +0 -73
- data/app/lib/matestack/ui/core/page_node.rb +0 -96
- data/app/lib/matestack/ui/core/to_cell.rb +0 -129
- data/lib/generators/matestack_app/USAGE +0 -21
- data/lib/generators/matestack_app/matestack_app_generator.rb +0 -26
- data/lib/generators/matestack_app/templates/matestack_app.erb +0 -26
- data/lib/generators/matestack_component/USAGE +0 -20
- data/lib/generators/matestack_component/matestack_component_generator.rb +0 -30
- data/lib/generators/matestack_component/templates/matestack_component.rb.erb +0 -13
- data/lib/generators/matestack_page/USAGE +0 -28
- data/lib/generators/matestack_page/matestack_page_generator.rb +0 -41
- data/lib/generators/matestack_page/templates/matestack_page.erb +0 -15
- data/vendor/assets/javascripts/manifest.json +0 -4
- data/vendor/assets/javascripts/matestack-ui-core.js +0 -15309
- data/vendor/assets/javascripts/matestack-ui-core.js.map +0 -1
data/MIT-LICENSE
DELETED
@@ -1,20 +0,0 @@
|
|
1
|
-
Copyright 2018 Jonas Jabari
|
2
|
-
|
3
|
-
Permission is hereby granted, free of charge, to any person obtaining
|
4
|
-
a copy of this software and associated documentation files (the
|
5
|
-
"Software"), to deal in the Software without restriction, including
|
6
|
-
without limitation the rights to use, copy, modify, merge, publish,
|
7
|
-
distribute, sublicense, and/or sell copies of the Software, and to
|
8
|
-
permit persons to whom the Software is furnished to do so, subject to
|
9
|
-
the following conditions:
|
10
|
-
|
11
|
-
The above copyright notice and this permission notice shall be
|
12
|
-
included in all copies or substantial portions of the Software.
|
13
|
-
|
14
|
-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
15
|
-
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
16
|
-
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
17
|
-
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
18
|
-
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
19
|
-
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
20
|
-
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
@@ -1,17 +0,0 @@
|
|
1
|
-
module Matestack::Ui::Core::Absolute
|
2
|
-
class Absolute < Matestack::Ui::Core::Component::Static
|
3
|
-
|
4
|
-
def setup
|
5
|
-
style = "position: absolute;"
|
6
|
-
style << " top: #{options[:top]}px;" if options[:top]
|
7
|
-
style << " left: #{options[:left]}px;" if options[:left]
|
8
|
-
style << " right: #{options[:right]}px;" if options[:right]
|
9
|
-
style << " bottom: #{options[:bottom]}px;" if options[:bottom]
|
10
|
-
style << " z-index: #{options[:z]};" if options[:z]
|
11
|
-
@tag_attributes.merge!({
|
12
|
-
style: style
|
13
|
-
})
|
14
|
-
end
|
15
|
-
|
16
|
-
end
|
17
|
-
end
|
@@ -1,6 +0,0 @@
|
|
1
|
-
%div{"v-if": "!showInlineForm", "@click": "launchInlineForm(\"#{options[:key]}\", \"#{options[:value]}\")"}
|
2
|
-
= options[:value]
|
3
|
-
%div{"v-if": "showInlineForm"}
|
4
|
-
%input{"ref": "inlineinput", "v-model": input_key, "@blur": "perform", "@keyup.esc": "closeInlineForm", class: options[:class], id: component_id}
|
5
|
-
- if block_given?
|
6
|
-
= yield
|
@@ -1,27 +0,0 @@
|
|
1
|
-
- if options[:label]
|
2
|
-
%label=options[:label]
|
3
|
-
|
4
|
-
- if [:text, :number, :email, :date, :password].include?(options[:type])
|
5
|
-
%input{@tag_attributes,
|
6
|
-
"v-model#{'.number' if options[:type] == :number}": input_key,
|
7
|
-
type: options[:type],
|
8
|
-
"@change": "inputChanged(\"#{attr_key}\")",
|
9
|
-
ref: "input.#{attr_key}",
|
10
|
-
placeholder: options[:placeholder],
|
11
|
-
"init-value": init_value}
|
12
|
-
%span{class: "errors", "v-if": error_key }
|
13
|
-
%span{class: "error", "v-for": "error in #{error_key}"}
|
14
|
-
{{ error }}
|
15
|
-
|
16
|
-
- if options[:type] == :textarea
|
17
|
-
%textarea{@tag_attributes,
|
18
|
-
"v-model": input_key,
|
19
|
-
"@change": "inputChanged(\"#{attr_key}\")",
|
20
|
-
ref: "input.#{attr_key}",
|
21
|
-
placeholder: options[:placeholder],
|
22
|
-
"init-value": init_value,
|
23
|
-
rows: options[:rows],
|
24
|
-
cols: options[:cols]}
|
25
|
-
%span{class: "errors", "v-if": error_key }
|
26
|
-
%span{class: "error", "v-for": "error in #{error_key}"}
|
27
|
-
{{ error }}
|
@@ -1,17 +0,0 @@
|
|
1
|
-
require_dependency "cell/partial"
|
2
|
-
|
3
|
-
module Matestack::Ui::Core::Html
|
4
|
-
class Html < Matestack::Ui::Core::Component::Dynamic
|
5
|
-
|
6
|
-
include Cell::ViewModel::Partial
|
7
|
-
|
8
|
-
view_paths << "#{::Rails.root}/app/views"
|
9
|
-
|
10
|
-
def include_partial(&block)
|
11
|
-
render partial: "#{options[:path]}" do
|
12
|
-
capture(&block)
|
13
|
-
end
|
14
|
-
end
|
15
|
-
|
16
|
-
end
|
17
|
-
end
|
@@ -1,11 +0,0 @@
|
|
1
|
-
module Matestack::Ui::Core::Isolate
|
2
|
-
class Isolate < Matestack::Ui::Core::Component::Static
|
3
|
-
|
4
|
-
def setup
|
5
|
-
@component_key = @component_key + "__" + @argument.to_s
|
6
|
-
@component_key = @component_key + "(" + @cached_params.to_json + ")" if @cached_params.present?
|
7
|
-
@component_config[:component_key] = @component_key
|
8
|
-
end
|
9
|
-
|
10
|
-
end
|
11
|
-
end
|
@@ -1,7 +0,0 @@
|
|
1
|
-
%div{"class": "matestack_page"}
|
2
|
-
%div{"v-if": "asyncPageTemplate == null"}
|
3
|
-
%div{"class": "matestack_page_content"}
|
4
|
-
- @children_cells.each do |key, cell|
|
5
|
-
= cell.call(:show)
|
6
|
-
%div{"v-if": "asyncPageTemplate != null"}
|
7
|
-
%v-runtime-template{":template":"asyncPageTemplate"}
|
@@ -1,42 +0,0 @@
|
|
1
|
-
import Vue from 'vue/dist/vue.esm'
|
2
|
-
|
3
|
-
import matestackEventHub from 'js/event-hub'
|
4
|
-
|
5
|
-
import componentMixin from 'component/component'
|
6
|
-
|
7
|
-
const componentDef = {
|
8
|
-
mixins: [componentMixin],
|
9
|
-
data: function(){
|
10
|
-
return {
|
11
|
-
showing: false
|
12
|
-
}
|
13
|
-
},
|
14
|
-
methods: {
|
15
|
-
show: function(){
|
16
|
-
this.showing = true
|
17
|
-
},
|
18
|
-
hide: function(){
|
19
|
-
this.showing = false
|
20
|
-
}
|
21
|
-
},
|
22
|
-
created: function () {
|
23
|
-
const self = this
|
24
|
-
matestackEventHub.$on(this.componentConfig["show"], self.show)
|
25
|
-
matestackEventHub.$on(this.componentConfig["hide"], self.hide)
|
26
|
-
if(this.componentConfig["init"] == "show"){
|
27
|
-
this.showing = true
|
28
|
-
}
|
29
|
-
if(this.componentConfig["init"] == "hide"){
|
30
|
-
this.showing = false
|
31
|
-
}
|
32
|
-
},
|
33
|
-
beforeDestroy: function() {
|
34
|
-
const self = this
|
35
|
-
matestackEventHub.$off(this.componentConfig["show"], self.show);
|
36
|
-
matestackEventHub.$off(this.componentConfig["hide"], self.hide);
|
37
|
-
},
|
38
|
-
}
|
39
|
-
|
40
|
-
let component = Vue.component('matestack-ui-core-view', componentDef)
|
41
|
-
|
42
|
-
export default componentDef
|
@@ -1,53 +0,0 @@
|
|
1
|
-
module Matestack::Ui::Core
|
2
|
-
class AppNode
|
3
|
-
|
4
|
-
def self.build(app_instance, &block)
|
5
|
-
node = AppNode.new(app_instance)
|
6
|
-
node.instance_eval(&block)
|
7
|
-
node.hash
|
8
|
-
end
|
9
|
-
|
10
|
-
attr_reader :hash
|
11
|
-
|
12
|
-
def initialize(app_instance)
|
13
|
-
@hash = {}
|
14
|
-
@node_start_id = 0
|
15
|
-
@app_instance = app_instance
|
16
|
-
app_instance.instance_variables.each do |app_instance_var_key|
|
17
|
-
self.instance_variable_set(app_instance_var_key, app_instance.instance_variable_get(app_instance_var_key))
|
18
|
-
end
|
19
|
-
end
|
20
|
-
|
21
|
-
def method_missing meth, *args, &block
|
22
|
-
begin
|
23
|
-
@app_instance.send(meth, *args, &block)
|
24
|
-
rescue
|
25
|
-
node_id = @node_start_id + 1
|
26
|
-
@node_start_id = node_id
|
27
|
-
current_node = "#{meth}_#{@node_start_id}"
|
28
|
-
@hash[current_node] = {}
|
29
|
-
@hash[current_node]["component_name"] = meth.to_s
|
30
|
-
@hash[current_node]["config"] = {}
|
31
|
-
@hash[current_node]["argument"] = nil
|
32
|
-
|
33
|
-
if meth == :page_content
|
34
|
-
@hash[current_node]["components"] = @app_instance.send(:page_nodes)
|
35
|
-
elsif meth == :partial
|
36
|
-
@hash[current_node]["components"] = @app_instance.send(args.first, *args.drop(1))
|
37
|
-
else
|
38
|
-
if args.first.is_a?(Hash)
|
39
|
-
@hash[current_node]["config"] = args.first
|
40
|
-
else
|
41
|
-
@hash[current_node]["argument"] = args.first
|
42
|
-
end
|
43
|
-
|
44
|
-
if block_given?
|
45
|
-
@hash[current_node]["components"] = AppNode.build(@app_instance, &block)
|
46
|
-
end
|
47
|
-
end
|
48
|
-
end
|
49
|
-
|
50
|
-
end
|
51
|
-
|
52
|
-
end
|
53
|
-
end
|
@@ -1,73 +0,0 @@
|
|
1
|
-
module Matestack::Ui::Core
|
2
|
-
class ComponentNode
|
3
|
-
|
4
|
-
def self.build(component_instance, included_config, &block)
|
5
|
-
node = ComponentNode.new(component_instance, included_config)
|
6
|
-
node.instance_eval(&block)
|
7
|
-
node.hash
|
8
|
-
end
|
9
|
-
|
10
|
-
attr_reader :hash
|
11
|
-
|
12
|
-
def initialize(component_instance, included_config)
|
13
|
-
@hash = {}
|
14
|
-
@node_start_id = 0
|
15
|
-
@component_instance = component_instance
|
16
|
-
@included_config = included_config
|
17
|
-
component_instance.instance_variables.each do |component_instance_var_key|
|
18
|
-
self.instance_variable_set(component_instance_var_key, component_instance.instance_variable_get(component_instance_var_key))
|
19
|
-
end
|
20
|
-
end
|
21
|
-
|
22
|
-
def method_missing meth, *args, &block
|
23
|
-
begin
|
24
|
-
@component_instance.send(meth, *args, &block)
|
25
|
-
rescue
|
26
|
-
node_id = @node_start_id + 1
|
27
|
-
@node_start_id = node_id
|
28
|
-
current_node = "#{meth}_#{@node_start_id}"
|
29
|
-
@hash[current_node] = {}
|
30
|
-
@hash[current_node]["component_name"] = meth.to_s
|
31
|
-
@hash[current_node]["config"] = {}
|
32
|
-
@hash[current_node]["argument"] = nil
|
33
|
-
@hash[current_node]["included_config"] = @included_config
|
34
|
-
|
35
|
-
if meth == :isolate
|
36
|
-
raise("isolate > only works on page level currently. component support is comming soon!")
|
37
|
-
end
|
38
|
-
|
39
|
-
if meth == :partial
|
40
|
-
@hash[current_node]["components"] = @component_instance.send(args.first, *args.drop(1))
|
41
|
-
elsif meth == :yield_components
|
42
|
-
@hash[current_node]["component_name"] = "partial"
|
43
|
-
@hash[current_node]["components"] = @component_instance.send(:get_children)
|
44
|
-
else
|
45
|
-
if args.first.is_a?(Hash)
|
46
|
-
@hash[current_node]["config"] = args.first unless meth == :slot
|
47
|
-
else
|
48
|
-
@hash[current_node]["argument"] = args.first
|
49
|
-
end
|
50
|
-
|
51
|
-
if args.second == :include
|
52
|
-
included = args.first
|
53
|
-
else
|
54
|
-
unless @included_config.nil?
|
55
|
-
included = @included_config
|
56
|
-
else
|
57
|
-
included = nil
|
58
|
-
end
|
59
|
-
end
|
60
|
-
|
61
|
-
if block_given?
|
62
|
-
@hash[current_node]["components"] = ComponentNode.build(@component_instance, included, &block)
|
63
|
-
elsif meth == :slot
|
64
|
-
# @hash[current_node]["components"] = ComponentNode.build(@component_instance, included, &args.first)
|
65
|
-
@hash[current_node]["components"] = args.first
|
66
|
-
end
|
67
|
-
end
|
68
|
-
end
|
69
|
-
|
70
|
-
end
|
71
|
-
|
72
|
-
end
|
73
|
-
end
|
@@ -1,96 +0,0 @@
|
|
1
|
-
module Matestack::Ui::Core
|
2
|
-
class PageNode
|
3
|
-
|
4
|
-
def self.build(page_instance, included_config, url_params, &block)
|
5
|
-
node = PageNode.new(page_instance, included_config, url_params)
|
6
|
-
node.instance_eval(&block)
|
7
|
-
node.hash
|
8
|
-
end
|
9
|
-
|
10
|
-
attr_reader :hash
|
11
|
-
|
12
|
-
def initialize(page_instance, included_config, url_params)
|
13
|
-
@hash = {}
|
14
|
-
@node_start_id = 0
|
15
|
-
@included_config = included_config
|
16
|
-
@url_params = url_params
|
17
|
-
@page_instance = page_instance
|
18
|
-
page_instance.instance_variables.each do |page_instance_var_key|
|
19
|
-
self.instance_variable_set(page_instance_var_key, page_instance.instance_variable_get(page_instance_var_key))
|
20
|
-
end
|
21
|
-
end
|
22
|
-
|
23
|
-
def method_missing meth, *args, &block
|
24
|
-
begin
|
25
|
-
@page_instance.send(meth, *args, &block)
|
26
|
-
rescue
|
27
|
-
node_id = @node_start_id + 1
|
28
|
-
@node_start_id = node_id
|
29
|
-
current_node = "#{meth}_#{@node_start_id}"
|
30
|
-
@hash[current_node] = {}
|
31
|
-
@hash[current_node]["component_name"] = meth.to_s
|
32
|
-
@hash[current_node]["config"] = {}
|
33
|
-
@hash[current_node]["included_config"] = @included_config
|
34
|
-
@hash[current_node]["argument"] = nil
|
35
|
-
|
36
|
-
if args.second == :include
|
37
|
-
included = args.first
|
38
|
-
else
|
39
|
-
unless @included_config.nil?
|
40
|
-
included = @included_config
|
41
|
-
else
|
42
|
-
included = nil
|
43
|
-
end
|
44
|
-
end
|
45
|
-
|
46
|
-
if meth == :isolate
|
47
|
-
if args.second.present?
|
48
|
-
if args.second.is_a? Hash
|
49
|
-
if args.second[:cached_params].nil?
|
50
|
-
raise "isolate > you need to pass params within a hash called 'cached_params'"
|
51
|
-
else
|
52
|
-
isolated_block = @page_instance.send(args.first, args.second[:cached_params])
|
53
|
-
end
|
54
|
-
else
|
55
|
-
raise "isolate > you need to pass params within a hash called 'cached_params'"
|
56
|
-
end
|
57
|
-
else
|
58
|
-
isolated_block = @page_instance.send(args.first)
|
59
|
-
end
|
60
|
-
@hash[current_node]["components"] = PageNode.build(
|
61
|
-
@page_instance, nil, @url_params, &isolated_block
|
62
|
-
)
|
63
|
-
@hash[current_node]["argument"] = args.first
|
64
|
-
@hash[current_node]["cached_params"] = args.second[:cached_params] if args.second.present?
|
65
|
-
end
|
66
|
-
|
67
|
-
if meth == :partial
|
68
|
-
partial_block = @page_instance.send(args.first, *args.drop(1))
|
69
|
-
@hash[current_node]["components"] = PageNode.build(
|
70
|
-
@page_instance, included, @url_params, &partial_block
|
71
|
-
)
|
72
|
-
else
|
73
|
-
if args.first.is_a?(Hash)
|
74
|
-
@hash[current_node]["config"] = args.first
|
75
|
-
else
|
76
|
-
@hash[current_node]["argument"] = args.first
|
77
|
-
end
|
78
|
-
|
79
|
-
if block_given?
|
80
|
-
if args.first.is_a?(Hash) && args.first[:defer].present?
|
81
|
-
if @url_params.present? && @url_params[:component_key].present?
|
82
|
-
@hash[current_node]["components"] = PageNode.build(@page_instance, included, @url_params, &block)
|
83
|
-
else
|
84
|
-
return
|
85
|
-
end
|
86
|
-
else
|
87
|
-
@hash[current_node]["components"] = PageNode.build(@page_instance, included, @url_params, &block)
|
88
|
-
end
|
89
|
-
end
|
90
|
-
end
|
91
|
-
end
|
92
|
-
|
93
|
-
end
|
94
|
-
|
95
|
-
end
|
96
|
-
end
|
@@ -1,129 +0,0 @@
|
|
1
|
-
module Matestack::Ui::Core::ToCell
|
2
|
-
|
3
|
-
def to_cell(key, component_name, config, argument, children, included_config, cached_params=nil)
|
4
|
-
# p cached_params
|
5
|
-
request_uri = context[:request].env["REQUEST_URI"]
|
6
|
-
query_string = context[:request].env["QUERY_STRING"]
|
7
|
-
|
8
|
-
config.merge!(component_key: key)
|
9
|
-
config.merge!(children: children)
|
10
|
-
config.merge!(origin_url: request_uri.gsub("?" + query_string, ""))
|
11
|
-
config.merge!(url_params: context[:params])
|
12
|
-
config.merge!(included_config: included_config)
|
13
|
-
config.merge!(cached_params: cached_params)
|
14
|
-
|
15
|
-
if component_name.start_with?("custom")
|
16
|
-
return resolve_custom_component(component_name, argument, config)
|
17
|
-
else
|
18
|
-
return resolve_core_component(component_name, argument, config)
|
19
|
-
end
|
20
|
-
|
21
|
-
end
|
22
|
-
|
23
|
-
private
|
24
|
-
|
25
|
-
def resolve_custom_component(component_name, argument, config)
|
26
|
-
name = component_name.gsub("_", "/")
|
27
|
-
|
28
|
-
path = name.split("/")[1..-1]
|
29
|
-
path_camelized = path.map { |x| x.camelize }
|
30
|
-
|
31
|
-
if path_camelized.count == 1
|
32
|
-
class_name = "#{path_camelized[0]}"
|
33
|
-
rewritten_path = [path[0]]
|
34
|
-
else
|
35
|
-
class_name = path_camelized.join("::")
|
36
|
-
rewritten_path = path
|
37
|
-
end
|
38
|
-
|
39
|
-
custom_component_class_name = "Components::" + class_name
|
40
|
-
|
41
|
-
begin
|
42
|
-
begin
|
43
|
-
component_class = Object.const_get(custom_component_class_name, false)
|
44
|
-
rescue => e
|
45
|
-
raise "#{e.message.nil? ? '': 'Got Error: '+e.message}. \
|
46
|
-
Make sure to define your custom component class correctly \
|
47
|
-
in \"matestack/components/#{rewritten_path.join('/')}.rb\""
|
48
|
-
end
|
49
|
-
if component_class.is_a?(Class)
|
50
|
-
return cell(component_class, argument, config)
|
51
|
-
else
|
52
|
-
raise "Given component #{component_class} is not a class. \
|
53
|
-
You might forget to add the component name to your component call"
|
54
|
-
end
|
55
|
-
rescue => e
|
56
|
-
raise "#{component_name} > #{e.message}"
|
57
|
-
end
|
58
|
-
|
59
|
-
end
|
60
|
-
|
61
|
-
def resolve_core_component(component_name, argument, config)
|
62
|
-
name = component_name.gsub("_", "/")
|
63
|
-
|
64
|
-
unless name.include?("/")
|
65
|
-
name = "#{name}/#{name}"
|
66
|
-
end
|
67
|
-
|
68
|
-
path = name.split("/")
|
69
|
-
path_camelized = path.map { |x| x.camelize }
|
70
|
-
class_name = path_camelized.join("::")
|
71
|
-
|
72
|
-
core_component_class_name = "Matestack::Ui::Core::" + class_name
|
73
|
-
begin
|
74
|
-
begin
|
75
|
-
component_class = Object.const_get(core_component_class_name, false)
|
76
|
-
unless component_class.is_a?(Class)
|
77
|
-
core_component_class_name = core_component_class_name + "::#{name.split("/").last.camelize}"
|
78
|
-
component_class = Object.const_get(core_component_class_name, false)
|
79
|
-
end
|
80
|
-
rescue => e
|
81
|
-
begin
|
82
|
-
return resolve_namespaced_component(component_name, argument, config)
|
83
|
-
rescue => e
|
84
|
-
raise "#{e.message.nil? ? '': 'Got Error: '+e.message}. \
|
85
|
-
Component '#{component_name}' not found. Looking for Class '#{core_component_class_name}'. \
|
86
|
-
Make sure to prefix a custom component with 'custom_'"
|
87
|
-
end
|
88
|
-
end
|
89
|
-
return cell(component_class, argument, config)
|
90
|
-
rescue => e
|
91
|
-
raise "#{component_name} > #{e.message}"
|
92
|
-
end
|
93
|
-
|
94
|
-
end
|
95
|
-
|
96
|
-
def resolve_namespaced_component(component_name, argument, config)
|
97
|
-
name = component_name.gsub("_", "/")
|
98
|
-
|
99
|
-
path = name.split("/")[1..-1]
|
100
|
-
namespace = name.split("/")[0].camelize
|
101
|
-
path_camelized = path.map { |x| x.camelize }
|
102
|
-
|
103
|
-
if path_camelized.count == 1
|
104
|
-
class_name = "#{path_camelized[0]}::#{path_camelized[0]}"
|
105
|
-
rewritten_path = [path[0], path[0]]
|
106
|
-
else
|
107
|
-
class_name = path_camelized[0..-1].join("::")
|
108
|
-
rewritten_path = path[0..-1]
|
109
|
-
end
|
110
|
-
|
111
|
-
namespaced_class_name = "Matestack::Ui::" + namespace + "::" + class_name
|
112
|
-
|
113
|
-
begin
|
114
|
-
begin
|
115
|
-
component_class = Object.const_get(namespaced_class_name, false)
|
116
|
-
unless component_class.is_a?(Class)
|
117
|
-
namespaced_class_name = namespaced_class_name + "::#{name.split("/").last.camelize}"
|
118
|
-
component_class = Object.const_get(namespaced_class_name, false)
|
119
|
-
end
|
120
|
-
rescue => e
|
121
|
-
raise "#{e.message}"
|
122
|
-
end
|
123
|
-
return cell(component_class, argument, config)
|
124
|
-
rescue => e
|
125
|
-
raise "#{e.message}"
|
126
|
-
end
|
127
|
-
end
|
128
|
-
|
129
|
-
end
|