matestack-ui-core 1.0.0 → 1.3.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (60) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +783 -17
  3. data/app/concepts/matestack/ui/core/app/store.js +5 -1
  4. data/app/concepts/matestack/ui/core/async/async.js +6 -28
  5. data/app/concepts/matestack/ui/core/async/async.rb +7 -10
  6. data/app/concepts/matestack/ui/core/cable/cable.haml +4 -0
  7. data/app/concepts/matestack/ui/core/cable/cable.js +100 -0
  8. data/app/concepts/matestack/ui/core/cable/cable.rb +28 -0
  9. data/app/concepts/matestack/ui/core/cable/children_wrapper.haml +2 -0
  10. data/app/concepts/matestack/ui/core/collection/content/content.js +2 -2
  11. data/app/concepts/matestack/ui/core/collection/content/content.rb +1 -1
  12. data/app/concepts/matestack/ui/core/component/base.rb +10 -4
  13. data/app/concepts/matestack/ui/core/component/component.js +18 -1
  14. data/app/concepts/matestack/ui/core/component/dynamic.rb +1 -1
  15. data/app/concepts/matestack/ui/core/form/checkbox/base.rb +120 -0
  16. data/app/concepts/matestack/ui/core/form/checkbox/checkbox.js +15 -0
  17. data/app/concepts/matestack/ui/core/form/checkbox/checkbox.rb +7 -70
  18. data/app/concepts/matestack/ui/core/form/checkbox/mixin.js +80 -0
  19. data/app/concepts/matestack/ui/core/form/form.js +15 -46
  20. data/app/concepts/matestack/ui/core/form/input/base.rb +75 -0
  21. data/app/concepts/matestack/ui/core/form/input/input.js +15 -0
  22. data/app/concepts/matestack/ui/core/form/input/input.rb +8 -52
  23. data/app/concepts/matestack/ui/core/form/input/mixin.js +55 -0
  24. data/app/concepts/matestack/ui/core/form/radio/base.rb +90 -0
  25. data/app/concepts/matestack/ui/core/form/radio/mixin.js +62 -0
  26. data/app/concepts/matestack/ui/core/form/radio/radio.js +15 -0
  27. data/app/concepts/matestack/ui/core/form/radio/radio.rb +7 -62
  28. data/app/concepts/matestack/ui/core/form/select/base.rb +98 -0
  29. data/app/concepts/matestack/ui/core/form/select/mixin.js +58 -0
  30. data/app/concepts/matestack/ui/core/form/select/select.js +15 -0
  31. data/app/concepts/matestack/ui/core/form/select/select.rb +11 -60
  32. data/app/concepts/matestack/ui/core/form/submit/base.rb +12 -0
  33. data/app/concepts/matestack/ui/core/form/submit/submit.js +19 -0
  34. data/app/concepts/matestack/ui/core/form/submit/submit.rb +9 -6
  35. data/app/concepts/matestack/ui/core/form/textarea/base.rb +49 -0
  36. data/app/concepts/matestack/ui/core/form/textarea/mixin.js +41 -0
  37. data/app/concepts/matestack/ui/core/form/textarea/textarea.js +15 -0
  38. data/app/concepts/matestack/ui/core/form/textarea/textarea.rb +10 -21
  39. data/app/concepts/matestack/ui/core/js/core.js +12 -0
  40. data/app/concepts/matestack/ui/core/{form/submit/submit.haml → select/select.haml} +1 -1
  41. data/app/concepts/matestack/ui/core/select/select.rb +7 -0
  42. data/app/helpers/matestack/ui/core/application_helper.rb +6 -3
  43. data/app/javascript/matestack-ui-core/index.js +12 -2
  44. data/app/lib/matestack/ui/core/has_view_context.rb +4 -2
  45. data/app/lib/matestack/ui/core/rendering/main_renderer.rb +11 -7
  46. data/lib/matestack/ui/core/components.rb +4 -1
  47. data/lib/matestack/ui/core/version.rb +1 -1
  48. data/vendor/assets/javascripts/dist/manifest.json +6 -10
  49. data/vendor/assets/javascripts/dist/manifest.json.br +0 -0
  50. data/vendor/assets/javascripts/dist/matestack-ui-core.js +773 -99
  51. data/vendor/assets/javascripts/dist/matestack-ui-core.js.map +1 -1
  52. data/vendor/assets/javascripts/dist/matestack-ui-core.min.js +1 -1
  53. data/vendor/assets/javascripts/dist/matestack-ui-core.min.js.br +0 -0
  54. data/vendor/assets/javascripts/dist/matestack-ui-core.min.js.gz +0 -0
  55. data/vendor/assets/javascripts/dist/matestack-ui-core.min.js.map +1 -1
  56. data/vendor/assets/javascripts/dist/matestack-ui-core.min.js.map.br +0 -0
  57. data/vendor/assets/javascripts/dist/matestack-ui-core.min.js.map.gz +0 -0
  58. metadata +28 -5
  59. data/app/concepts/matestack/ui/core/component/rerender.rb +0 -8
  60. data/app/concepts/matestack/ui/core/form/select/select.haml +0 -9
@@ -0,0 +1,12 @@
1
+ module Matestack::Ui::Core::Form::Submit
2
+ class Base < Matestack::Ui::Core::Component::Dynamic
3
+
4
+ def submit_attributes
5
+ html_attributes.merge!({
6
+ "@click.prevent": "$parent.perform",
7
+ "v-bind:class": "{ 'loading': $parent.loading }"
8
+ })
9
+ end
10
+
11
+ end
12
+ end
@@ -0,0 +1,19 @@
1
+ import Vue from "vue/dist/vue.esm";
2
+
3
+ import componentMixin from "../../component/component";
4
+
5
+ const componentDef = {
6
+ mixins: [componentMixin],
7
+ data() {
8
+ return {};
9
+ },
10
+ methods: {
11
+ loading: function(){
12
+ return this.$parent.loading;
13
+ }
14
+ }
15
+ }
16
+
17
+ let component = Vue.component("matestack-ui-core-form-submit", componentDef);
18
+
19
+ export default componentDef;
@@ -1,11 +1,14 @@
1
+ require_relative './base'
2
+
1
3
  module Matestack::Ui::Core::Form::Submit
2
- class Submit < Matestack::Ui::Core::Component::Static
4
+ class Submit < Base
5
+
6
+ vue_js_component_name "matestack-ui-core-form-submit"
3
7
 
4
- def submit_attributes
5
- html_attributes.merge!({
6
- "@click.prevent": "perform",
7
- "v-bind:class": "{ 'loading': loading }"
8
- })
8
+ def response
9
+ span attributes: submit_attributes do
10
+ yield_components
11
+ end
9
12
  end
10
13
 
11
14
  end
@@ -0,0 +1,49 @@
1
+ require_relative '../utils'
2
+ require_relative '../has_errors'
3
+ module Matestack::Ui::Core::Form::Textarea
4
+ class Base < Matestack::Ui::Core::Component::Dynamic
5
+ include Matestack::Ui::Core::Form::Utils
6
+ include Matestack::Ui::Core::Form::HasErrors
7
+
8
+ requires :key
9
+ optional :multiple, :init, for: { as: :input_for }, label: { as: :input_label }
10
+
11
+ html_attributes :autofocus, :cols, :dirname, :disabled, :form, :maxlength,
12
+ :name, :placeholder, :readonly, :required, :rows, :wrap
13
+
14
+ def setup
15
+ @component_config[:init_value] = init_value
16
+ end
17
+
18
+ def component_id
19
+ "textarea-component-for-#{attr_key}"
20
+ end
21
+
22
+ def input_key
23
+ "$parent.data[\"#{key}\"]"
24
+ end
25
+
26
+ def error_key
27
+ "$parent.errors[\"#{key}\"]"
28
+ end
29
+
30
+ def change_event
31
+ "inputChanged('#{attr_key}')"
32
+ end
33
+
34
+ def textarea_attributes
35
+ html_attributes.merge(attributes: vue_attributes)
36
+ end
37
+
38
+ def vue_attributes
39
+ (options[:attributes] || {}).merge({
40
+ 'v-model': input_key,
41
+ '@change': change_event,
42
+ 'v-bind:class': "{ '#{input_error_class}': #{error_key} }",
43
+ "init-value": init_value,
44
+ ref: "input.#{attr_key}",
45
+ })
46
+ end
47
+
48
+ end
49
+ end
@@ -0,0 +1,41 @@
1
+ const formTextareaMixin = {
2
+ methods: {
3
+ initialize: function(){
4
+ const self = this
5
+ let data = {};
6
+
7
+ for (let key in this.$refs) {
8
+ let initValue = this.$refs[key]["attributes"]["init-value"];
9
+
10
+ if (initValue) {
11
+ data[key.replace("input.", "")] = initValue["value"];
12
+ Object.assign(self.$parent.data, data);
13
+ self.afterInitialize(initValue["value"])
14
+ } else {
15
+ data[key.replace("input.", "")] = null;
16
+ Object.assign(self.$parent.data, data);
17
+ self.afterInitialize(null)
18
+ }
19
+ }
20
+
21
+ //without the timeout it's somehow not working
22
+ setTimeout(function () {
23
+ self.$forceUpdate()
24
+ }, 1);
25
+ },
26
+ inputChanged: function (key) {
27
+ this.$parent.resetErrors(key);
28
+ this.$forceUpdate();
29
+ },
30
+ afterInitialize: function(value){
31
+ // can be used in the main component for further initialization steps
32
+ },
33
+ setValue: function (value){
34
+ this.$parent.data[this.componentConfig["key"]] = value
35
+ this.$forceUpdate();
36
+ }
37
+ }
38
+
39
+ }
40
+
41
+ export default formTextareaMixin
@@ -0,0 +1,15 @@
1
+ import Vue from "vue/dist/vue.esm";
2
+
3
+ import formTextareaMixin from "./mixin";
4
+ import componentMixin from "../../component/component";
5
+
6
+ const componentDef = {
7
+ mixins: [componentMixin, formTextareaMixin],
8
+ data() {
9
+ return {};
10
+ }
11
+ }
12
+
13
+ let component = Vue.component("matestack-ui-core-form-textarea", componentDef);
14
+
15
+ export default componentDef;
@@ -1,28 +1,17 @@
1
- require_relative '../utils'
2
- require_relative '../has_errors'
1
+ require_relative './base'
2
+
3
3
  module Matestack::Ui::Core::Form::Textarea
4
- class Textarea < Matestack::Ui::Core::Textarea::Textarea
5
- include Matestack::Ui::Core::Form::Utils
6
- include Matestack::Ui::Core::Form::HasErrors
4
+ class Textarea < Base
7
5
 
8
- requires :key
9
- optional :multiple, :init, for: { as: :input_for }, label: { as: :input_label }
6
+ vue_js_component_name "matestack-ui-core-form-textarea"
10
7
 
11
8
  def response
12
- label text: input_label if input_label
13
- textarea html_attributes.merge(attributes: vue_attributes)
14
- render_errors
9
+ div class: "matestack-ui-core-form-textarea" do
10
+ label text: input_label if input_label
11
+ textarea textarea_attributes
12
+ render_errors
13
+ end
15
14
  end
16
15
 
17
- def vue_attributes
18
- (options[:attributes] || {}).merge({
19
- 'v-model': input_key,
20
- '@change': "inputChanged('#{attr_key}')",
21
- 'v-bind:class': "{ '#{input_error_class}': #{error_key} }",
22
- "init-value": init_value,
23
- ref: "input.#{attr_key}",
24
- })
25
- end
26
-
27
16
  end
28
- end
17
+ end
@@ -4,6 +4,7 @@ import { turbolinksAdapterMixin } from 'vue-turbolinks';
4
4
  // Import from app/concepts/matestack/ui/core:
5
5
  import app from '../app/app'
6
6
  import async from '../async/async'
7
+ import cable from '../cable/cable'
7
8
  import pageContent from '../page/content/content'
8
9
  import toggle from '../toggle/toggle'
9
10
  import store from '../app/store'
@@ -12,6 +13,17 @@ import anonymDynamicComponent from '../component/anonym-dynamic-component'
12
13
  import transition from '../transition/transition'
13
14
  import action from '../action/action'
14
15
  import form from '../form/form'
16
+ import formInput from '../form/input/input'
17
+ import formInputMixin from '../form/input/mixin'
18
+ import formSelect from '../form/select/select'
19
+ import formSelectMixin from '../form/select/mixin'
20
+ import formRadio from '../form/radio/radio'
21
+ import formRadioMixin from '../form/radio/mixin'
22
+ import formCheckbox from '../form/checkbox/checkbox'
23
+ import formCheckboxMixin from '../form/checkbox/mixin'
24
+ import formTextarea from '../form/textarea/textarea'
25
+ import formTextareaMixin from '../form/textarea/mixin'
26
+ import formSubmit from '../form/submit/submit'
15
27
  import onclick from '../onclick/onclick'
16
28
  import collectionContent from '../collection/content/content'
17
29
  import collectionFilter from '../collection/filter/filter'
@@ -1,3 +1,3 @@
1
- %span{ submit_attributes }
1
+ %select{ html_attributes }
2
2
  - if block_given?
3
3
  = yield
@@ -0,0 +1,7 @@
1
+ module Matestack::Ui::Core::Select
2
+ class Select < Matestack::Ui::Core::Component::Static
3
+
4
+ html_attributes :autofocus, :disabled, :form, :multiple, :name, :required, :size
5
+
6
+ end
7
+ end
@@ -14,7 +14,7 @@ module Matestack
14
14
  def self.included(base)
15
15
  base.extend(ClassMethods)
16
16
  end
17
-
17
+
18
18
  module ClassMethods
19
19
  def matestack_app _class
20
20
  @matestack_app_class = _class
@@ -99,8 +99,11 @@ module Matestack
99
99
  end
100
100
 
101
101
  def matestack_component(component, options = {}, &block)
102
- context = (options[:matestack_context] ||= {}).merge(controller: @_controller)
103
- Matestack::Ui::Core::Component::Base.new(options.merge(matestack_context: context)).send(component, options.merge(matestack_context: context), &block)
102
+ controller = (self.class <= ActionController::Base) ? self : @_controller
103
+ context = (options[:matestack_context] ||= {}).merge(controller: controller)
104
+ Matestack::Ui::Core::Component::Base
105
+ .new(options.merge(context: context, matestack_context: context))
106
+ .send(component, options.merge(context: context, matestack_context: context), &block).to_s
104
107
  end
105
108
  end
106
109
  end
@@ -5,6 +5,11 @@ import axios from 'axios'
5
5
  // Import from app/concepts/matestack/ui/core:
6
6
  import matestackEventHub from '../../../app/concepts/matestack/ui/core/js/event-hub'
7
7
  import componentMixin from '../../../app/concepts/matestack/ui/core/component/component'
8
+ import formInputMixin from '../../../app/concepts/matestack/ui/core/form/input/mixin'
9
+ import formSelectMixin from '../../../app/concepts/matestack/ui/core/form/select/mixin'
10
+ import formRadioMixin from '../../../app/concepts/matestack/ui/core/form/radio/mixin'
11
+ import formCheckboxMixin from '../../../app/concepts/matestack/ui/core/form/checkbox/mixin'
12
+ import formTextareaMixin from '../../../app/concepts/matestack/ui/core/form/textarea/mixin'
8
13
  import matestackUiCore from '../../../app/concepts/matestack/ui/core/js/core'
9
14
 
10
15
  import styles from './styles/index.scss'
@@ -14,9 +19,14 @@ const MatestackUiCore = {
14
19
  Vuex,
15
20
  axios,
16
21
  matestackEventHub,
17
- componentMixin
22
+ componentMixin,
23
+ formInputMixin,
24
+ formSelectMixin,
25
+ formCheckboxMixin,
26
+ formTextareaMixin,
27
+ formRadioMixin
18
28
  }
19
29
 
20
30
  window.MatestackUiCore = MatestackUiCore
21
31
 
22
- export default MatestackUiCore
32
+ export default MatestackUiCore
@@ -2,8 +2,10 @@ module Matestack::Ui::Core::HasViewContext
2
2
  def initialize(*args)
3
3
  super
4
4
  @view_context = @options.dig(:context, :view_context)
5
+ unless @view_context
6
+ @view_context = @options.dig(:matestack_context, :controller)&.view_context
7
+ end
5
8
  end
6
-
7
9
  def method_missing(*args, &block)
8
10
  if @view_context.respond_to? args.first
9
11
  @view_context.send(*args, &block)
@@ -11,4 +13,4 @@ module Matestack::Ui::Core::HasViewContext
11
13
  raise NameError, "NameError: undefined method or local variable `#{args.first}' for #{self.class.name}"
12
14
  end
13
15
  end
14
- end
16
+ end
@@ -21,9 +21,10 @@ module Matestack::Ui::Core::Rendering::MainRenderer
21
21
  render_matestack_object(controller_instance, page_instance)
22
22
  elsif (params[:component_key].present? && params[:component_class].blank?)
23
23
  # async component rerendering from non isolated context
24
+ app_instance = app_class.new(page_class, controller_instance, context)
24
25
  component_key = params[:component_key]
25
26
  page_instance = page_class.new(controller_instance: controller_instance, context: context)
26
- render_component(component_key, page_instance, controller_instance, context)
27
+ render_component(component_key, app_instance, controller_instance, context)
27
28
  elsif (params[:component_class].present? && params[:component_key].blank?)
28
29
  # isolated component rendering
29
30
  component_class = params[:component_class]
@@ -60,11 +61,14 @@ module Matestack::Ui::Core::Rendering::MainRenderer
60
61
  end
61
62
  end
62
63
 
64
+ # needs refactoring!
65
+ # we shouldn't pass in the parts of the controller_instance and the instance itself
63
66
  def create_context_hash(controller_instance)
64
67
  {
65
68
  view_context: controller_instance.view_context,
66
69
  params: controller_instance.params,
67
- request: controller_instance.request
70
+ request: controller_instance.request,
71
+ controller: controller_instance # if this is not included here, rails route helpers will fail with undefined method `url_options' for nil:NilClass in some cases
68
72
  }
69
73
  end
70
74
 
@@ -75,15 +79,15 @@ module Matestack::Ui::Core::Rendering::MainRenderer
75
79
  controller_instance.render rendering_options
76
80
  end
77
81
 
78
- def render_component(component_key, page_instance, controller_instance, context)
82
+ def render_component(component_key, app_or_page_instance, controller_instance, context)
79
83
  matched_component = nil
80
84
 
81
- page_instance.matestack_set_skip_defer(false)
85
+ app_or_page_instance.matestack_set_skip_defer(false)
82
86
 
83
- page_instance.prepare
84
- page_instance.response
87
+ app_or_page_instance.prepare
88
+ app_or_page_instance.response
85
89
 
86
- matched_component = dig_for_component(component_key, page_instance)
90
+ matched_component = dig_for_component(component_key, app_or_page_instance)
87
91
 
88
92
  unless matched_component.nil?
89
93
  render_matestack_object(controller_instance, matched_component, {}, :render_content)
@@ -25,7 +25,6 @@ module Matestack::Ui::Core::Components
25
25
 
26
26
  require_app_path "concepts/matestack/ui/core/component/base"
27
27
  require_app_path "concepts/matestack/ui/core/component/dynamic"
28
- require_app_path "concepts/matestack/ui/core/component/rerender"
29
28
  require_app_path "concepts/matestack/ui/core/component/static"
30
29
 
31
30
  require_core_component "abbr"
@@ -41,6 +40,7 @@ module Matestack::Ui::Core::Components
41
40
  require_core_component "blockquote"
42
41
  require_core_component "br"
43
42
  require_core_component "button"
43
+ require_core_component "cable"
44
44
  require_core_component "caption"
45
45
  require_core_component "cite"
46
46
  require_core_component "code"
@@ -120,6 +120,7 @@ module Matestack::Ui::Core::Components
120
120
  require_core_component "s"
121
121
  require_core_component "samp"
122
122
  require_core_component "section"
123
+ require_core_component "select"
123
124
  require_core_component "small"
124
125
  require_core_component "span"
125
126
  require_core_component "strong"
@@ -162,6 +163,7 @@ Matestack::Ui::Core::Component::Registry.register_components(
162
163
  blockquote: Matestack::Ui::Core::Blockquote::Blockquote,
163
164
  br: Matestack::Ui::Core::Br::Br,
164
165
  button: Matestack::Ui::Core::Button::Button,
166
+ cable: Matestack::Ui::Core::Cable::Cable,
165
167
  caption: Matestack::Ui::Core::Caption::Caption,
166
168
  cite: Matestack::Ui::Core::Cite::Cite,
167
169
  code: Matestack::Ui::Core::Code::Code,
@@ -240,6 +242,7 @@ Matestack::Ui::Core::Component::Registry.register_components(
240
242
  s: Matestack::Ui::Core::S::S,
241
243
  samp: Matestack::Ui::Core::Samp::Samp,
242
244
  section: Matestack::Ui::Core::Section::Section,
245
+ select: Matestack::Ui::Core::Select::Select,
243
246
  small: Matestack::Ui::Core::Small::Small,
244
247
  span: Matestack::Ui::Core::Span::Span,
245
248
  strong: Matestack::Ui::Core::Strong::Strong,
@@ -1,7 +1,7 @@
1
1
  module Matestack
2
2
  module Ui
3
3
  module Core
4
- VERSION = '1.0.0'
4
+ VERSION = '1.3.1'
5
5
  end
6
6
  end
7
7
  end
@@ -2,21 +2,17 @@
2
2
  "entrypoints": {
3
3
  "matestack-ui-core": {
4
4
  "css": [
5
- "/dist/matestack-ui-core.css"
5
+ "/dist/matestack-ui-core.min.css"
6
6
  ],
7
7
  "js": [
8
- "/dist/matestack-ui-core.js"
9
- ],
10
- "css.map": [
11
- "/dist/matestack-ui-core.css.map"
8
+ "/dist/matestack-ui-core.min.js"
12
9
  ],
13
10
  "js.map": [
14
- "/dist/matestack-ui-core.js.map"
11
+ "/dist/matestack-ui-core.min.js.map"
15
12
  ]
16
13
  }
17
14
  },
18
- "matestack-ui-core.css": "/dist/matestack-ui-core.css",
19
- "matestack-ui-core.css.map": "/dist/matestack-ui-core.css.map",
20
- "matestack-ui-core.js": "/dist/matestack-ui-core.js",
21
- "matestack-ui-core.js.map": "/dist/matestack-ui-core.js.map"
15
+ "matestack-ui-core.css": "/dist/matestack-ui-core.min.css",
16
+ "matestack-ui-core.js": "/dist/matestack-ui-core.min.js",
17
+ "matestack-ui-core.js.map": "/dist/matestack-ui-core.min.js.map"
22
18
  }
@@ -394,7 +394,11 @@ const store = new vuex__WEBPACK_IMPORTED_MODULE_1__["default"].Store({
394
394
  return getScrollParent(node.parentNode)
395
395
  }
396
396
  }
397
- getScrollParent(document.getElementsByClassName("matestack-page-root")[0]).scrollTop = 0
397
+ var scrollParent = getScrollParent(document.getElementsByClassName("matestack-page-root")[0])
398
+ if(scrollParent){
399
+ scrollParent.scrollTop = 0;
400
+ }
401
+ // getScrollParent(document.getElementsByClassName("matestack-page-root")[0]).scrollTop = 0
398
402
  }
399
403
  },
400
404
  actions: {
@@ -548,19 +552,9 @@ const componentDef = {
548
552
  },
549
553
  created: function () {
550
554
  const self = this
551
- if(this.componentConfig["show_on"] != undefined){
552
- this.showing = false
553
- var show_events = this.componentConfig["show_on"].split(",")
554
- show_events.forEach(show_event => _js_event_hub__WEBPACK_IMPORTED_MODULE_3__["default"].$on(show_event.trim(), self.show));
555
- }
556
- if(this.componentConfig["hide_on"] != undefined){
557
- var hide_events = this.componentConfig["hide_on"].split(",")
558
- hide_events.forEach(hide_event => _js_event_hub__WEBPACK_IMPORTED_MODULE_3__["default"].$on(hide_event.trim(), self.hide));
559
- }
560
- if(this.componentConfig["rerender_on"] != undefined){
561
- var rerender_events = this.componentConfig["rerender_on"].split(",")
562
- rerender_events.forEach(rerender_event => _js_event_hub__WEBPACK_IMPORTED_MODULE_3__["default"].$on(rerender_event.trim(), self.rerender));
563
- }
555
+ self.registerEvents(this.componentConfig['show_on'], self.show)
556
+ self.registerEvents(this.componentConfig['hide_on'], self.hide)
557
+ self.registerEvents(this.componentConfig['rerender_on'], self.rerender)
564
558
  if(this.componentConfig["show_on"] != undefined){
565
559
  this.showing = false
566
560
  }
@@ -578,21 +572,9 @@ const componentDef = {
578
572
  beforeDestroy: function() {
579
573
  const self = this
580
574
  clearTimeout(self.hideAfterTimeout)
581
- _js_event_hub__WEBPACK_IMPORTED_MODULE_3__["default"].$off(this.componentConfig["rerender_on"], self.rerender);
582
- _js_event_hub__WEBPACK_IMPORTED_MODULE_3__["default"].$off(this.componentConfig["show_on"], self.show);
583
- _js_event_hub__WEBPACK_IMPORTED_MODULE_3__["default"].$off(this.componentConfig["hide_on"], self.hide);
584
- if(this.componentConfig["show_on"] != undefined){
585
- var shown_events = this.componentConfig["show_on"].split(",")
586
- shown_events.forEach(show_event => _js_event_hub__WEBPACK_IMPORTED_MODULE_3__["default"].$off(show_event.trim(), self.show));
587
- }
588
- if(this.componentConfig["hide_on"] != undefined){
589
- var hiden_events = this.componentConfig["hide_on"].split(",")
590
- hiden_events.forEach(hide_event => _js_event_hub__WEBPACK_IMPORTED_MODULE_3__["default"].$off(hide_event.trim(), self.hide));
591
- }
592
- if(this.componentConfig["rerender_on"] != undefined){
593
- var rerender_events = this.componentConfig["rerender_on"].split(",")
594
- rerender_events.forEach(rerender_event => _js_event_hub__WEBPACK_IMPORTED_MODULE_3__["default"].$off(rerender_event.trim(), self.rerender));
595
- }
575
+ self.removeEvents(this.componentConfig["show_on"], self.show)
576
+ self.removeEvents(this.componentConfig["hide_on"], self.hide)
577
+ self.removeEvents(this.componentConfig["rerender_on"], self.rerender)
596
578
  },
597
579
  components: {
598
580
  VRuntimeTemplate: v_runtime_template__WEBPACK_IMPORTED_MODULE_2__["default"]
@@ -604,6 +586,123 @@ let component = vue_dist_vue_esm__WEBPACK_IMPORTED_MODULE_0__["default"].compone
604
586
  /* harmony default export */ __webpack_exports__["default"] = (componentDef);
605
587
 
606
588
 
589
+ /***/ }),
590
+
591
+ /***/ "../app/concepts/matestack/ui/core/cable/cable.js":
592
+ /*!********************************************************!*\
593
+ !*** ../app/concepts/matestack/ui/core/cable/cable.js ***!
594
+ \********************************************************/
595
+ /*! exports provided: default */
596
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
597
+
598
+ "use strict";
599
+ __webpack_require__.r(__webpack_exports__);
600
+ /* harmony import */ var vue_dist_vue_esm__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue/dist/vue.esm */ "../node_modules/vue/dist/vue.esm.js");
601
+ /* harmony import */ var v_runtime_template__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! v-runtime-template */ "../node_modules/v-runtime-template/dist/v-runtime-template.es.js");
602
+ /* harmony import */ var _js_event_hub__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../js/event-hub */ "../app/concepts/matestack/ui/core/js/event-hub.js");
603
+ /* harmony import */ var _component_component__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../component/component */ "../app/concepts/matestack/ui/core/component/component.js");
604
+
605
+
606
+
607
+
608
+
609
+ const componentDef = {
610
+ mixins: [_component_component__WEBPACK_IMPORTED_MODULE_3__["default"]],
611
+ props: {
612
+ initialTemplate: String,
613
+ },
614
+ data: function(){
615
+ return {
616
+ cableTemplate: null,
617
+ cableTemplateDomElement: null,
618
+ loading: false,
619
+ event: {
620
+ data: {}
621
+ }
622
+ }
623
+ },
624
+ methods: {
625
+ append: function(payload){
626
+ var html = this.formatPayload(payload)
627
+ this.cableTemplateDomElement.insertAdjacentHTML(
628
+ 'beforeend',
629
+ html.join('')
630
+ )
631
+ this.updateCableTemplate()
632
+ },
633
+ prepend: function(payload){
634
+ var html = this.formatPayload(payload)
635
+ this.cableTemplateDomElement.insertAdjacentHTML(
636
+ 'afterbegin',
637
+ html.join('')
638
+ )
639
+ this.updateCableTemplate()
640
+ },
641
+ delete: function(payload){
642
+ var ids = this.formatPayload(payload)
643
+ ids.forEach(id =>
644
+ this.cableTemplateDomElement.querySelector('#' + id).remove()
645
+ )
646
+ this.updateCableTemplate()
647
+ },
648
+ update: function(payload){
649
+ const self = this
650
+ var html = this.formatPayload(payload)
651
+ html.forEach(function(elem){
652
+ var dom_elem = document.createElement('div')
653
+ dom_elem.innerHTML = elem
654
+ var id = dom_elem.firstChild.id
655
+ var old_elem = self.cableTemplateDomElement.querySelector('#' + id)
656
+ old_elem.parentNode.replaceChild(dom_elem.firstChild, old_elem)
657
+ })
658
+ this.updateCableTemplate()
659
+ },
660
+ replace: function(payload){
661
+ var html = this.formatPayload(payload)
662
+ this.cableTemplateDomElement.innerHTML = html.join('')
663
+ this.updateCableTemplate()
664
+ },
665
+ updateCableTemplate: function(){
666
+ this.cableTemplate = this.cableTemplateDomElement.outerHTML
667
+ },
668
+ formatPayload: function(payload){
669
+ if(!Array.isArray(payload.data)){
670
+ return [payload.data]
671
+ }
672
+ return payload.data
673
+ },
674
+ },
675
+ mounted: function() {
676
+ const self = this
677
+ var dom_elem = document.createElement('div')
678
+ dom_elem.innerHTML = this.initialTemplate
679
+ this.cableTemplateDomElement = dom_elem.querySelector("#" + this.componentConfig["id"])
680
+ this.cableTemplate = this.cableTemplateDomElement.outerHTML
681
+ this.registerEvents(this.componentConfig['append_on'], self.append)
682
+ this.registerEvents(this.componentConfig['prepend_on'], self.prepend)
683
+ this.registerEvents(this.componentConfig['delete_on'], self.delete)
684
+ this.registerEvents(this.componentConfig['update_on'], self.update)
685
+ this.registerEvents(this.componentConfig['replace_on'], self.replace)
686
+ },
687
+ beforeDestroy: function() {
688
+ const self = this
689
+ this.cableTemplate = null
690
+ this.removeEvents(this.componentConfig['append_on'], self.append)
691
+ this.removeEvents(this.componentConfig['prepend_on'], self.prepend)
692
+ this.removeEvents(this.componentConfig['delete_on'], self.delete)
693
+ this.removeEvents(this.componentConfig['update_on'], self.update)
694
+ this.removeEvents(this.componentConfig['replace_on'], self.replace)
695
+ },
696
+ components: {
697
+ VRuntimeTemplate: v_runtime_template__WEBPACK_IMPORTED_MODULE_1__["default"]
698
+ }
699
+ }
700
+
701
+ let component = vue_dist_vue_esm__WEBPACK_IMPORTED_MODULE_0__["default"].component('matestack-ui-core-cable', componentDef)
702
+
703
+ /* harmony default export */ __webpack_exports__["default"] = (componentDef);
704
+
705
+
607
706
  /***/ }),
608
707
 
609
708
  /***/ "../app/concepts/matestack/ui/core/collection/content/content.js":
@@ -619,15 +718,14 @@ __webpack_require__.r(__webpack_exports__);
619
718
  /* harmony import */ var _js_event_hub__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../js/event-hub */ "../app/concepts/matestack/ui/core/js/event-hub.js");
620
719
  /* harmony import */ var _js_helpers_query_params_helper__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../js/helpers/query-params-helper */ "../app/concepts/matestack/ui/core/js/helpers/query-params-helper.js");
621
720
  /* harmony import */ var _component_component__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../component/component */ "../app/concepts/matestack/ui/core/component/component.js");
622
- /* harmony import */ var _async_async__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../async/async */ "../app/concepts/matestack/ui/core/async/async.js");
623
-
624
721
 
625
722
 
626
723
 
627
724
 
725
+ // import asyncMixin from '../../async/async'
628
726
 
629
727
  const componentDef = {
630
- mixins: [_component_component__WEBPACK_IMPORTED_MODULE_3__["default"], _async_async__WEBPACK_IMPORTED_MODULE_4__["default"]],
728
+ mixins: [_component_component__WEBPACK_IMPORTED_MODULE_3__["default"]],
631
729
  data: function(){
632
730
  return {
633
731
  currentLimit: null,
@@ -894,13 +992,155 @@ let component = vue_dist_vue_esm__WEBPACK_IMPORTED_MODULE_0__["default"].compone
894
992
 
895
993
  "use strict";
896
994
  __webpack_require__.r(__webpack_exports__);
995
+ /* harmony import */ var _js_event_hub__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../js/event-hub */ "../app/concepts/matestack/ui/core/js/event-hub.js");
996
+
997
+
897
998
  const componentMixin = {
898
- props: ['componentConfig', 'params']
999
+ props: ['componentConfig', 'params'],
1000
+ methods: {
1001
+ registerEvents: function(events, callback){
1002
+ if(events != undefined){
1003
+ var event_names = events.split(",")
1004
+ event_names.forEach(event_name => _js_event_hub__WEBPACK_IMPORTED_MODULE_0__["default"].$on(event_name.trim(), callback));
1005
+ }
1006
+ },
1007
+ removeEvents: function(events, callback){
1008
+ if(events != undefined){
1009
+ var event_names = events.split(",")
1010
+ event_names.forEach(event_name => _js_event_hub__WEBPACK_IMPORTED_MODULE_0__["default"].$off(event_name.trim(), callback));
1011
+ }
1012
+ }
1013
+ }
1014
+
899
1015
  }
900
1016
 
901
1017
  /* harmony default export */ __webpack_exports__["default"] = (componentMixin);
902
1018
 
903
1019
 
1020
+ /***/ }),
1021
+
1022
+ /***/ "../app/concepts/matestack/ui/core/form/checkbox/checkbox.js":
1023
+ /*!*******************************************************************!*\
1024
+ !*** ../app/concepts/matestack/ui/core/form/checkbox/checkbox.js ***!
1025
+ \*******************************************************************/
1026
+ /*! exports provided: default */
1027
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
1028
+
1029
+ "use strict";
1030
+ __webpack_require__.r(__webpack_exports__);
1031
+ /* harmony import */ var vue_dist_vue_esm__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue/dist/vue.esm */ "../node_modules/vue/dist/vue.esm.js");
1032
+ /* harmony import */ var _mixin__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./mixin */ "../app/concepts/matestack/ui/core/form/checkbox/mixin.js");
1033
+ /* harmony import */ var _component_component__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../component/component */ "../app/concepts/matestack/ui/core/component/component.js");
1034
+
1035
+
1036
+
1037
+
1038
+
1039
+ const componentDef = {
1040
+ mixins: [_component_component__WEBPACK_IMPORTED_MODULE_2__["default"], _mixin__WEBPACK_IMPORTED_MODULE_1__["default"]],
1041
+ data() {
1042
+ return {};
1043
+ }
1044
+ }
1045
+
1046
+ let component = vue_dist_vue_esm__WEBPACK_IMPORTED_MODULE_0__["default"].component("matestack-ui-core-form-checkbox", componentDef);
1047
+
1048
+ /* harmony default export */ __webpack_exports__["default"] = (componentDef);
1049
+
1050
+
1051
+ /***/ }),
1052
+
1053
+ /***/ "../app/concepts/matestack/ui/core/form/checkbox/mixin.js":
1054
+ /*!****************************************************************!*\
1055
+ !*** ../app/concepts/matestack/ui/core/form/checkbox/mixin.js ***!
1056
+ \****************************************************************/
1057
+ /*! exports provided: default */
1058
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
1059
+
1060
+ "use strict";
1061
+ __webpack_require__.r(__webpack_exports__);
1062
+ const formCheckboxMixin = {
1063
+ methods: {
1064
+ initialize: function(){
1065
+ const self = this
1066
+ let data = {};
1067
+
1068
+ for (let key in self.$refs) {
1069
+ let initValue = self.$refs[key]["attributes"]["init-value"];
1070
+ let valueType = self.$refs[key]["attributes"]["value-type"];
1071
+
1072
+ if (key.startsWith("select.")) {
1073
+ if (key.startsWith("select.multiple.")) {
1074
+ if (initValue) {
1075
+ data[key.replace("select.multiple.", "")] = JSON.parse(initValue["value"]);
1076
+ Object.assign(self.$parent.data, data);
1077
+ self.afterInitialize(JSON.parse(initValue["value"]))
1078
+ } else {
1079
+ data[key.replace("select.multiple.", "")] = [];
1080
+ Object.assign(self.$parent.data, data);
1081
+ self.afterInitialize([])
1082
+ }
1083
+ } else {
1084
+ if (initValue) {
1085
+ if (valueType && valueType["value"] == "Integer") {
1086
+ data[key.replace("select.", "")] = parseInt(initValue["value"]);
1087
+ Object.assign(self.$parent.data, data);
1088
+ self.afterInitialize(parseInt(initValue["value"]))
1089
+ } else {
1090
+
1091
+ data[key.replace("select.", "")] = initValue["value"];
1092
+ Object.assign(self.$parent.data, data);
1093
+ self.afterInitialize(initValue["value"])
1094
+ }
1095
+ } else {
1096
+ data[key.replace("select.", "")] = null;
1097
+ Object.assign(self.$parent.data, data);
1098
+ self.afterInitialize(null)
1099
+ }
1100
+ }
1101
+ } else {
1102
+ if (initValue) {
1103
+ if(initValue["value"] === "true"){
1104
+ data[key.replace("input.", "")] = true;
1105
+ Object.assign(self.$parent.data, data);
1106
+ self.afterInitialize(true)
1107
+ }
1108
+ if(initValue["value"] === "false"){
1109
+ data[key.replace("input.", "")] = false;
1110
+ Object.assign(self.$parent.data, data);
1111
+ self.afterInitialize(false)
1112
+ }
1113
+ } else {
1114
+ data[key.replace("input.", "")] = null;
1115
+ Object.assign(self.$parent.data, data);
1116
+ self.afterInitialize(null)
1117
+ }
1118
+ }
1119
+ }
1120
+
1121
+ //without the timeout it's somehow not working
1122
+ setTimeout(function () {
1123
+ self.$forceUpdate()
1124
+ }, 1);
1125
+ },
1126
+ inputChanged: function (key) {
1127
+ this.$parent.resetErrors(key);
1128
+ this.$forceUpdate();
1129
+ },
1130
+ afterInitialize: function(value){
1131
+ // can be used in the main component for further initialization steps
1132
+ },
1133
+ setValue: function (value){
1134
+ this.$parent.data[this.componentConfig["key"]] = value
1135
+ this.$forceUpdate();
1136
+ }
1137
+ }
1138
+
1139
+ }
1140
+
1141
+ /* harmony default export */ __webpack_exports__["default"] = (formCheckboxMixin);
1142
+
1143
+
904
1144
  /***/ }),
905
1145
 
906
1146
  /***/ "../app/concepts/matestack/ui/core/form/form.js":
@@ -938,9 +1178,6 @@ const componentDef = {
938
1178
  initDataKey: function (key, initValue) {
939
1179
  this.data[key] = initValue;
940
1180
  },
941
- inputChanged: function (key) {
942
- this.resetErrors(key);
943
- },
944
1181
  updateFormValue: function (key, value) {
945
1182
  this.data[key] = value;
946
1183
  },
@@ -964,11 +1201,11 @@ const componentDef = {
964
1201
  flat[i] = newVal;
965
1202
  } else if (flat[i] instanceof File){
966
1203
  flat[i] = newVal;
967
- this.$refs["input."+i].value = newVal
1204
+ this.$refs["input-component-for-"+i].value = newVal
968
1205
  } else if (flat[i] instanceof Array) {
969
1206
  if(flat[i][0] instanceof File){
970
1207
  flat[i] = newVal
971
- this.$refs["input."+i].value = newVal
1208
+ this.$refs["input-component-for-"+i].value = newVal
972
1209
  }
973
1210
  } else if (typeof flat[i] === "object" && !(flat[i] instanceof Array)) {
974
1211
  setProps(flat[i], newVal);
@@ -977,54 +1214,26 @@ const componentDef = {
977
1214
  }
978
1215
  }
979
1216
  },
980
- filesAdded: function (key) {
981
- const dataTransfer = event.dataTransfer || event.target;
982
- const files = dataTransfer.files;
983
- if (event.target.attributes.multiple) {
984
- this.data[key] = [];
985
- for (let index in files) {
986
- if (files[index] instanceof File) {
987
- this.data[key].push(files[index]);
988
- }
989
- }
990
- } else {
991
- this.data[key] = files[0];
992
- }
993
- },
994
1217
  initValues: function () {
995
1218
  let self = this;
996
1219
  let data = {};
997
1220
  for (let key in self.$refs) {
998
- let initValue = self.$refs[key]["attributes"]["init-value"];
999
- let valueType = self.$refs[key]["attributes"]["value-type"];
1000
-
1001
- if (key.startsWith("input.")) {
1002
- if (initValue) {
1003
- data[key.replace("input.", "")] = initValue["value"];
1004
- } else {
1005
- data[key.replace("input.", "")] = null;
1006
- }
1221
+ if (key.startsWith("input-component")) {
1222
+ self.$refs[key].initialize()
1007
1223
  }
1008
- if (key.startsWith("select.")) {
1009
- if (key.startsWith("select.multiple.")) {
1010
- if (initValue) {
1011
- data[key.replace("select.multiple.", "")] = JSON.parse(initValue["value"]);
1012
- } else {
1013
- data[key.replace("select.multiple.", "")] = [];
1014
- }
1015
- } else {
1016
- if (initValue) {
1017
- if (valueType && valueType["value"] == "Integer") data[key.replace("select.", "")] = parseInt(initValue["value"]);
1018
- else {
1019
- data[key.replace("select.", "")] = initValue["value"];
1020
- }
1021
- } else {
1022
- data[key.replace("select.", "")] = null;
1023
- }
1024
- }
1224
+ if (key.startsWith("textarea-component")) {
1225
+ self.$refs[key].initialize()
1226
+ }
1227
+ if (key.startsWith("select-component")) {
1228
+ self.$refs[key].initialize()
1229
+ }
1230
+ if (key.startsWith("radio-component")) {
1231
+ self.$refs[key].initialize()
1232
+ }
1233
+ if (key.startsWith("checkbox-component")) {
1234
+ self.$refs[key].initialize()
1025
1235
  }
1026
1236
  }
1027
- self.data = data;
1028
1237
  },
1029
1238
  shouldResetFormOnSuccessfulSubmit() {
1030
1239
  const self = this;
@@ -1226,6 +1435,432 @@ let component = vue_dist_vue_esm__WEBPACK_IMPORTED_MODULE_0__["default"].compone
1226
1435
  /* harmony default export */ __webpack_exports__["default"] = (componentDef);
1227
1436
 
1228
1437
 
1438
+ /***/ }),
1439
+
1440
+ /***/ "../app/concepts/matestack/ui/core/form/input/input.js":
1441
+ /*!*************************************************************!*\
1442
+ !*** ../app/concepts/matestack/ui/core/form/input/input.js ***!
1443
+ \*************************************************************/
1444
+ /*! exports provided: default */
1445
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
1446
+
1447
+ "use strict";
1448
+ __webpack_require__.r(__webpack_exports__);
1449
+ /* harmony import */ var vue_dist_vue_esm__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue/dist/vue.esm */ "../node_modules/vue/dist/vue.esm.js");
1450
+ /* harmony import */ var _mixin__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./mixin */ "../app/concepts/matestack/ui/core/form/input/mixin.js");
1451
+ /* harmony import */ var _component_component__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../component/component */ "../app/concepts/matestack/ui/core/component/component.js");
1452
+
1453
+
1454
+
1455
+
1456
+
1457
+ const componentDef = {
1458
+ mixins: [_component_component__WEBPACK_IMPORTED_MODULE_2__["default"], _mixin__WEBPACK_IMPORTED_MODULE_1__["default"]],
1459
+ data() {
1460
+ return {};
1461
+ }
1462
+ }
1463
+
1464
+ let component = vue_dist_vue_esm__WEBPACK_IMPORTED_MODULE_0__["default"].component("matestack-ui-core-form-input", componentDef);
1465
+
1466
+ /* harmony default export */ __webpack_exports__["default"] = (componentDef);
1467
+
1468
+
1469
+ /***/ }),
1470
+
1471
+ /***/ "../app/concepts/matestack/ui/core/form/input/mixin.js":
1472
+ /*!*************************************************************!*\
1473
+ !*** ../app/concepts/matestack/ui/core/form/input/mixin.js ***!
1474
+ \*************************************************************/
1475
+ /*! exports provided: default */
1476
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
1477
+
1478
+ "use strict";
1479
+ __webpack_require__.r(__webpack_exports__);
1480
+ const formInputMixin = {
1481
+ methods: {
1482
+ initialize: function(){
1483
+ const self = this
1484
+ let data = {};
1485
+
1486
+ for (let key in this.$refs) {
1487
+ let initValue = this.$refs[key]["attributes"]["init-value"];
1488
+
1489
+ if (initValue) {
1490
+ data[key.replace("input.", "")] = initValue["value"];
1491
+ Object.assign(self.$parent.data, data);
1492
+ self.afterInitialize(initValue["value"])
1493
+ } else {
1494
+ data[key.replace("input.", "")] = null;
1495
+ Object.assign(self.$parent.data, data);
1496
+ self.afterInitialize(null)
1497
+ }
1498
+ }
1499
+
1500
+ //without the timeout it's somehow not working
1501
+ setTimeout(function () {
1502
+ self.$forceUpdate()
1503
+ }, 1);
1504
+ },
1505
+ filesAdded: function (key) {
1506
+ const dataTransfer = event.dataTransfer || event.target;
1507
+ const files = dataTransfer.files;
1508
+ if (event.target.attributes.multiple) {
1509
+ this.$parent.data[key] = [];
1510
+ for (let index in files) {
1511
+ if (files[index] instanceof File) {
1512
+ this.$parent.data[key].push(files[index]);
1513
+ }
1514
+ }
1515
+ } else {
1516
+ this.$parent.data[key] = files[0];
1517
+ }
1518
+ },
1519
+ inputChanged: function (key) {
1520
+ this.$parent.resetErrors(key);
1521
+ this.$forceUpdate();
1522
+ },
1523
+ afterInitialize: function(value){
1524
+ // can be used in the main component for further initialization steps
1525
+ },
1526
+ setValue: function (value){
1527
+ this.$parent.data[this.componentConfig["key"]] = value
1528
+ this.$forceUpdate();
1529
+ }
1530
+ }
1531
+
1532
+ }
1533
+
1534
+ /* harmony default export */ __webpack_exports__["default"] = (formInputMixin);
1535
+
1536
+
1537
+ /***/ }),
1538
+
1539
+ /***/ "../app/concepts/matestack/ui/core/form/radio/mixin.js":
1540
+ /*!*************************************************************!*\
1541
+ !*** ../app/concepts/matestack/ui/core/form/radio/mixin.js ***!
1542
+ \*************************************************************/
1543
+ /*! exports provided: default */
1544
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
1545
+
1546
+ "use strict";
1547
+ __webpack_require__.r(__webpack_exports__);
1548
+ const formRadioMixin = {
1549
+ methods: {
1550
+ initialize: function(){
1551
+ const self = this
1552
+ let data = {};
1553
+
1554
+ for (let key in self.$refs) {
1555
+ let initValue = self.$refs[key]["attributes"]["init-value"];
1556
+ let valueType = self.$refs[key]["attributes"]["value-type"];
1557
+
1558
+ if (key.startsWith("select.")) {
1559
+ if (key.startsWith("select.multiple.")) {
1560
+ if (initValue) {
1561
+ data[key.replace("select.multiple.", "")] = JSON.parse(initValue["value"]);
1562
+ Object.assign(self.$parent.data, data);
1563
+ self.afterInitialize(JSON.parse(initValue["value"]))
1564
+ } else {
1565
+ data[key.replace("select.multiple.", "")] = [];
1566
+ Object.assign(self.$parent.data, data);
1567
+ self.afterInitialize([])
1568
+ }
1569
+ } else {
1570
+ if (initValue) {
1571
+ if (valueType && valueType["value"] == "Integer") {
1572
+ data[key.replace("select.", "")] = parseInt(initValue["value"]);
1573
+ Object.assign(self.$parent.data, data);
1574
+ self.afterInitialize(parseInt(initValue["value"]))
1575
+ } else {
1576
+ data[key.replace("select.", "")] = initValue["value"];
1577
+ Object.assign(self.$parent.data, data);
1578
+ self.afterInitialize(initValue["value"])
1579
+ }
1580
+ } else {
1581
+ data[key.replace("select.", "")] = null;
1582
+ Object.assign(self.$parent.data, data);
1583
+ self.afterInitialize(null)
1584
+ }
1585
+ }
1586
+ }
1587
+ }
1588
+
1589
+ //without the timeout it's somehow not working
1590
+ setTimeout(function () {
1591
+ self.$forceUpdate();
1592
+ }, 1);
1593
+ },
1594
+ inputChanged: function (key) {
1595
+ this.$parent.resetErrors(key);
1596
+ this.$forceUpdate();
1597
+ },
1598
+ afterInitialize: function(value){
1599
+ // can be used in the main component for further initialization steps
1600
+ },
1601
+ setValue: function (value){
1602
+ this.$parent.data[this.componentConfig["key"]] = value
1603
+ this.$forceUpdate();
1604
+ }
1605
+ }
1606
+
1607
+ }
1608
+
1609
+ /* harmony default export */ __webpack_exports__["default"] = (formRadioMixin);
1610
+
1611
+
1612
+ /***/ }),
1613
+
1614
+ /***/ "../app/concepts/matestack/ui/core/form/radio/radio.js":
1615
+ /*!*************************************************************!*\
1616
+ !*** ../app/concepts/matestack/ui/core/form/radio/radio.js ***!
1617
+ \*************************************************************/
1618
+ /*! exports provided: default */
1619
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
1620
+
1621
+ "use strict";
1622
+ __webpack_require__.r(__webpack_exports__);
1623
+ /* harmony import */ var vue_dist_vue_esm__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue/dist/vue.esm */ "../node_modules/vue/dist/vue.esm.js");
1624
+ /* harmony import */ var _mixin__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./mixin */ "../app/concepts/matestack/ui/core/form/radio/mixin.js");
1625
+ /* harmony import */ var _component_component__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../component/component */ "../app/concepts/matestack/ui/core/component/component.js");
1626
+
1627
+
1628
+
1629
+
1630
+
1631
+ const componentDef = {
1632
+ mixins: [_component_component__WEBPACK_IMPORTED_MODULE_2__["default"], _mixin__WEBPACK_IMPORTED_MODULE_1__["default"]],
1633
+ data() {
1634
+ return {};
1635
+ }
1636
+ }
1637
+
1638
+ let component = vue_dist_vue_esm__WEBPACK_IMPORTED_MODULE_0__["default"].component("matestack-ui-core-form-radio", componentDef);
1639
+
1640
+ /* harmony default export */ __webpack_exports__["default"] = (componentDef);
1641
+
1642
+
1643
+ /***/ }),
1644
+
1645
+ /***/ "../app/concepts/matestack/ui/core/form/select/mixin.js":
1646
+ /*!**************************************************************!*\
1647
+ !*** ../app/concepts/matestack/ui/core/form/select/mixin.js ***!
1648
+ \**************************************************************/
1649
+ /*! exports provided: default */
1650
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
1651
+
1652
+ "use strict";
1653
+ __webpack_require__.r(__webpack_exports__);
1654
+ const formSelectMixin = {
1655
+ methods: {
1656
+ initialize: function(){
1657
+ const self = this
1658
+ let data = {};
1659
+
1660
+ for (let key in self.$refs) {
1661
+ let initValue = self.$refs[key]["attributes"]["init-value"];
1662
+ let valueType = self.$refs[key]["attributes"]["value-type"];
1663
+
1664
+ if (key.startsWith("select.")) {
1665
+ if (key.startsWith("select.multiple.")) {
1666
+ if (initValue) {
1667
+ data[key.replace("select.multiple.", "")] = JSON.parse(initValue["value"]);
1668
+ self.afterInitialize(JSON.parse(initValue["value"]))
1669
+ } else {
1670
+ data[key.replace("select.multiple.", "")] = [];
1671
+ self.afterInitialize([])
1672
+ }
1673
+ } else {
1674
+ if (initValue) {
1675
+ if (valueType && valueType["value"] == "Integer") {
1676
+ data[key.replace("select.", "")] = parseInt(initValue["value"]);
1677
+ self.afterInitialize(parseInt(initValue["value"]))
1678
+ } else {
1679
+ data[key.replace("select.", "")] = initValue["value"];
1680
+ self.afterInitialize(initValue["value"])
1681
+ }
1682
+ } else {
1683
+ data[key.replace("select.", "")] = null;
1684
+ self.afterInitialize(null)
1685
+ }
1686
+ }
1687
+ }
1688
+ }
1689
+
1690
+ //without the timeout it's somehow not working
1691
+ setTimeout(function () {
1692
+ Object.assign(self.$parent.data, data);
1693
+ self.$forceUpdate()
1694
+ }, 1);
1695
+ },
1696
+ inputChanged: function (key) {
1697
+ this.$parent.resetErrors(key);
1698
+ this.$forceUpdate();
1699
+ },
1700
+ afterInitialize: function(value){
1701
+ // can be used in the main component for further initialization steps
1702
+ },
1703
+ setValue: function (value){
1704
+ this.$parent.data[this.componentConfig["key"]] = value
1705
+ this.$forceUpdate();
1706
+ }
1707
+ }
1708
+
1709
+ }
1710
+
1711
+ /* harmony default export */ __webpack_exports__["default"] = (formSelectMixin);
1712
+
1713
+
1714
+ /***/ }),
1715
+
1716
+ /***/ "../app/concepts/matestack/ui/core/form/select/select.js":
1717
+ /*!***************************************************************!*\
1718
+ !*** ../app/concepts/matestack/ui/core/form/select/select.js ***!
1719
+ \***************************************************************/
1720
+ /*! exports provided: default */
1721
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
1722
+
1723
+ "use strict";
1724
+ __webpack_require__.r(__webpack_exports__);
1725
+ /* harmony import */ var vue_dist_vue_esm__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue/dist/vue.esm */ "../node_modules/vue/dist/vue.esm.js");
1726
+ /* harmony import */ var _mixin__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./mixin */ "../app/concepts/matestack/ui/core/form/select/mixin.js");
1727
+ /* harmony import */ var _component_component__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../component/component */ "../app/concepts/matestack/ui/core/component/component.js");
1728
+
1729
+
1730
+
1731
+
1732
+
1733
+ const componentDef = {
1734
+ mixins: [_component_component__WEBPACK_IMPORTED_MODULE_2__["default"], _mixin__WEBPACK_IMPORTED_MODULE_1__["default"]],
1735
+ data() {
1736
+ return {};
1737
+ }
1738
+ }
1739
+
1740
+ let component = vue_dist_vue_esm__WEBPACK_IMPORTED_MODULE_0__["default"].component("matestack-ui-core-form-select", componentDef);
1741
+
1742
+ /* harmony default export */ __webpack_exports__["default"] = (componentDef);
1743
+
1744
+
1745
+ /***/ }),
1746
+
1747
+ /***/ "../app/concepts/matestack/ui/core/form/submit/submit.js":
1748
+ /*!***************************************************************!*\
1749
+ !*** ../app/concepts/matestack/ui/core/form/submit/submit.js ***!
1750
+ \***************************************************************/
1751
+ /*! exports provided: default */
1752
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
1753
+
1754
+ "use strict";
1755
+ __webpack_require__.r(__webpack_exports__);
1756
+ /* harmony import */ var vue_dist_vue_esm__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue/dist/vue.esm */ "../node_modules/vue/dist/vue.esm.js");
1757
+ /* harmony import */ var _component_component__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../component/component */ "../app/concepts/matestack/ui/core/component/component.js");
1758
+
1759
+
1760
+
1761
+
1762
+ const componentDef = {
1763
+ mixins: [_component_component__WEBPACK_IMPORTED_MODULE_1__["default"]],
1764
+ data() {
1765
+ return {};
1766
+ },
1767
+ methods: {
1768
+ loading: function(){
1769
+ return this.$parent.loading;
1770
+ }
1771
+ }
1772
+ }
1773
+
1774
+ let component = vue_dist_vue_esm__WEBPACK_IMPORTED_MODULE_0__["default"].component("matestack-ui-core-form-submit", componentDef);
1775
+
1776
+ /* harmony default export */ __webpack_exports__["default"] = (componentDef);
1777
+
1778
+
1779
+ /***/ }),
1780
+
1781
+ /***/ "../app/concepts/matestack/ui/core/form/textarea/mixin.js":
1782
+ /*!****************************************************************!*\
1783
+ !*** ../app/concepts/matestack/ui/core/form/textarea/mixin.js ***!
1784
+ \****************************************************************/
1785
+ /*! exports provided: default */
1786
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
1787
+
1788
+ "use strict";
1789
+ __webpack_require__.r(__webpack_exports__);
1790
+ const formTextareaMixin = {
1791
+ methods: {
1792
+ initialize: function(){
1793
+ const self = this
1794
+ let data = {};
1795
+
1796
+ for (let key in this.$refs) {
1797
+ let initValue = this.$refs[key]["attributes"]["init-value"];
1798
+
1799
+ if (initValue) {
1800
+ data[key.replace("input.", "")] = initValue["value"];
1801
+ Object.assign(self.$parent.data, data);
1802
+ self.afterInitialize(initValue["value"])
1803
+ } else {
1804
+ data[key.replace("input.", "")] = null;
1805
+ Object.assign(self.$parent.data, data);
1806
+ self.afterInitialize(null)
1807
+ }
1808
+ }
1809
+
1810
+ //without the timeout it's somehow not working
1811
+ setTimeout(function () {
1812
+ self.$forceUpdate()
1813
+ }, 1);
1814
+ },
1815
+ inputChanged: function (key) {
1816
+ this.$parent.resetErrors(key);
1817
+ this.$forceUpdate();
1818
+ },
1819
+ afterInitialize: function(value){
1820
+ // can be used in the main component for further initialization steps
1821
+ },
1822
+ setValue: function (value){
1823
+ this.$parent.data[this.componentConfig["key"]] = value
1824
+ this.$forceUpdate();
1825
+ }
1826
+ }
1827
+
1828
+ }
1829
+
1830
+ /* harmony default export */ __webpack_exports__["default"] = (formTextareaMixin);
1831
+
1832
+
1833
+ /***/ }),
1834
+
1835
+ /***/ "../app/concepts/matestack/ui/core/form/textarea/textarea.js":
1836
+ /*!*******************************************************************!*\
1837
+ !*** ../app/concepts/matestack/ui/core/form/textarea/textarea.js ***!
1838
+ \*******************************************************************/
1839
+ /*! exports provided: default */
1840
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
1841
+
1842
+ "use strict";
1843
+ __webpack_require__.r(__webpack_exports__);
1844
+ /* harmony import */ var vue_dist_vue_esm__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue/dist/vue.esm */ "../node_modules/vue/dist/vue.esm.js");
1845
+ /* harmony import */ var _mixin__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./mixin */ "../app/concepts/matestack/ui/core/form/textarea/mixin.js");
1846
+ /* harmony import */ var _component_component__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../component/component */ "../app/concepts/matestack/ui/core/component/component.js");
1847
+
1848
+
1849
+
1850
+
1851
+
1852
+ const componentDef = {
1853
+ mixins: [_component_component__WEBPACK_IMPORTED_MODULE_2__["default"], _mixin__WEBPACK_IMPORTED_MODULE_1__["default"]],
1854
+ data() {
1855
+ return {};
1856
+ }
1857
+ }
1858
+
1859
+ let component = vue_dist_vue_esm__WEBPACK_IMPORTED_MODULE_0__["default"].component("matestack-ui-core-form-textarea", componentDef);
1860
+
1861
+ /* harmony default export */ __webpack_exports__["default"] = (componentDef);
1862
+
1863
+
1229
1864
  /***/ }),
1230
1865
 
1231
1866
  /***/ "../app/concepts/matestack/ui/core/isolated/isolated.js":
@@ -1367,19 +2002,31 @@ __webpack_require__.r(__webpack_exports__);
1367
2002
  /* harmony import */ var vue_turbolinks__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! vue-turbolinks */ "../node_modules/vue-turbolinks/index.js");
1368
2003
  /* harmony import */ var _app_app__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../app/app */ "../app/concepts/matestack/ui/core/app/app.js");
1369
2004
  /* harmony import */ var _async_async__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../async/async */ "../app/concepts/matestack/ui/core/async/async.js");
1370
- /* harmony import */ var _page_content_content__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../page/content/content */ "../app/concepts/matestack/ui/core/page/content/content.js");
1371
- /* harmony import */ var _toggle_toggle__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../toggle/toggle */ "../app/concepts/matestack/ui/core/toggle/toggle.js");
1372
- /* harmony import */ var _app_store__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../app/store */ "../app/concepts/matestack/ui/core/app/store.js");
1373
- /* harmony import */ var _component_component__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../component/component */ "../app/concepts/matestack/ui/core/component/component.js");
1374
- /* harmony import */ var _component_anonym_dynamic_component__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../component/anonym-dynamic-component */ "../app/concepts/matestack/ui/core/component/anonym-dynamic-component.js");
1375
- /* harmony import */ var _transition_transition__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../transition/transition */ "../app/concepts/matestack/ui/core/transition/transition.js");
1376
- /* harmony import */ var _action_action__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../action/action */ "../app/concepts/matestack/ui/core/action/action.js");
1377
- /* harmony import */ var _form_form__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../form/form */ "../app/concepts/matestack/ui/core/form/form.js");
1378
- /* harmony import */ var _onclick_onclick__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../onclick/onclick */ "../app/concepts/matestack/ui/core/onclick/onclick.js");
1379
- /* harmony import */ var _collection_content_content__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ../collection/content/content */ "../app/concepts/matestack/ui/core/collection/content/content.js");
1380
- /* harmony import */ var _collection_filter_filter__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ../collection/filter/filter */ "../app/concepts/matestack/ui/core/collection/filter/filter.js");
1381
- /* harmony import */ var _collection_order_order__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ../collection/order/order */ "../app/concepts/matestack/ui/core/collection/order/order.js");
1382
- /* harmony import */ var _isolated_isolated__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ../isolated/isolated */ "../app/concepts/matestack/ui/core/isolated/isolated.js");
2005
+ /* harmony import */ var _cable_cable__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../cable/cable */ "../app/concepts/matestack/ui/core/cable/cable.js");
2006
+ /* harmony import */ var _page_content_content__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../page/content/content */ "../app/concepts/matestack/ui/core/page/content/content.js");
2007
+ /* harmony import */ var _toggle_toggle__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../toggle/toggle */ "../app/concepts/matestack/ui/core/toggle/toggle.js");
2008
+ /* harmony import */ var _app_store__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../app/store */ "../app/concepts/matestack/ui/core/app/store.js");
2009
+ /* harmony import */ var _component_component__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../component/component */ "../app/concepts/matestack/ui/core/component/component.js");
2010
+ /* harmony import */ var _component_anonym_dynamic_component__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../component/anonym-dynamic-component */ "../app/concepts/matestack/ui/core/component/anonym-dynamic-component.js");
2011
+ /* harmony import */ var _transition_transition__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../transition/transition */ "../app/concepts/matestack/ui/core/transition/transition.js");
2012
+ /* harmony import */ var _action_action__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../action/action */ "../app/concepts/matestack/ui/core/action/action.js");
2013
+ /* harmony import */ var _form_form__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../form/form */ "../app/concepts/matestack/ui/core/form/form.js");
2014
+ /* harmony import */ var _form_input_input__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ../form/input/input */ "../app/concepts/matestack/ui/core/form/input/input.js");
2015
+ /* harmony import */ var _form_input_mixin__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ../form/input/mixin */ "../app/concepts/matestack/ui/core/form/input/mixin.js");
2016
+ /* harmony import */ var _form_select_select__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ../form/select/select */ "../app/concepts/matestack/ui/core/form/select/select.js");
2017
+ /* harmony import */ var _form_select_mixin__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ../form/select/mixin */ "../app/concepts/matestack/ui/core/form/select/mixin.js");
2018
+ /* harmony import */ var _form_radio_radio__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ../form/radio/radio */ "../app/concepts/matestack/ui/core/form/radio/radio.js");
2019
+ /* harmony import */ var _form_radio_mixin__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ../form/radio/mixin */ "../app/concepts/matestack/ui/core/form/radio/mixin.js");
2020
+ /* harmony import */ var _form_checkbox_checkbox__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ../form/checkbox/checkbox */ "../app/concepts/matestack/ui/core/form/checkbox/checkbox.js");
2021
+ /* harmony import */ var _form_checkbox_mixin__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ../form/checkbox/mixin */ "../app/concepts/matestack/ui/core/form/checkbox/mixin.js");
2022
+ /* harmony import */ var _form_textarea_textarea__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ../form/textarea/textarea */ "../app/concepts/matestack/ui/core/form/textarea/textarea.js");
2023
+ /* harmony import */ var _form_textarea_mixin__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ../form/textarea/mixin */ "../app/concepts/matestack/ui/core/form/textarea/mixin.js");
2024
+ /* harmony import */ var _form_submit_submit__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! ../form/submit/submit */ "../app/concepts/matestack/ui/core/form/submit/submit.js");
2025
+ /* harmony import */ var _onclick_onclick__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! ../onclick/onclick */ "../app/concepts/matestack/ui/core/onclick/onclick.js");
2026
+ /* harmony import */ var _collection_content_content__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(/*! ../collection/content/content */ "../app/concepts/matestack/ui/core/collection/content/content.js");
2027
+ /* harmony import */ var _collection_filter_filter__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(/*! ../collection/filter/filter */ "../app/concepts/matestack/ui/core/collection/filter/filter.js");
2028
+ /* harmony import */ var _collection_order_order__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(/*! ../collection/order/order */ "../app/concepts/matestack/ui/core/collection/order/order.js");
2029
+ /* harmony import */ var _isolated_isolated__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(/*! ../isolated/isolated */ "../app/concepts/matestack/ui/core/isolated/isolated.js");
1383
2030
 
1384
2031
 
1385
2032
 
@@ -1392,6 +2039,18 @@ __webpack_require__.r(__webpack_exports__);
1392
2039
 
1393
2040
 
1394
2041
 
2042
+
2043
+
2044
+
2045
+
2046
+
2047
+
2048
+
2049
+
2050
+
2051
+
2052
+
2053
+
1395
2054
 
1396
2055
 
1397
2056
 
@@ -1412,7 +2071,7 @@ document.addEventListener('DOMContentLoaded', () => {
1412
2071
  matestackUiApp = new vue_dist_vue_esm__WEBPACK_IMPORTED_MODULE_0__["default"]({
1413
2072
  el: "#matestack-ui",
1414
2073
  mixins: [vue_turbolinks__WEBPACK_IMPORTED_MODULE_1__["turbolinksAdapterMixin"]],
1415
- store: _app_store__WEBPACK_IMPORTED_MODULE_6__["default"]
2074
+ store: _app_store__WEBPACK_IMPORTED_MODULE_7__["default"]
1416
2075
  })
1417
2076
  })
1418
2077
 
@@ -1422,14 +2081,14 @@ document.addEventListener('turbolinks:load', () => {
1422
2081
  // otherwise the matestack page will jump back to the latest pageTemplate
1423
2082
  // fetched during the last matestack transition as the turbolinks powered
1424
2083
  // page transition does not write the matestack store pageTemplate state variable
1425
- _app_store__WEBPACK_IMPORTED_MODULE_6__["default"].commit('resetPageTemplate')
2084
+ _app_store__WEBPACK_IMPORTED_MODULE_7__["default"].commit('resetPageTemplate')
1426
2085
  // we need to destroy the vue app instance
1427
2086
  matestackUiApp.$destroy();
1428
2087
  // and recreate it right afterwards in order to work when used with turbolinks
1429
2088
  matestackUiApp = new vue_dist_vue_esm__WEBPACK_IMPORTED_MODULE_0__["default"]({
1430
2089
  el: "#matestack-ui",
1431
2090
  mixins: [vue_turbolinks__WEBPACK_IMPORTED_MODULE_1__["turbolinksAdapterMixin"]],
1432
- store: _app_store__WEBPACK_IMPORTED_MODULE_6__["default"]
2091
+ store: _app_store__WEBPACK_IMPORTED_MODULE_7__["default"]
1433
2092
  })
1434
2093
  })
1435
2094
 
@@ -1763,9 +2422,14 @@ __webpack_require__.r(__webpack_exports__);
1763
2422
  /* harmony import */ var axios__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(axios__WEBPACK_IMPORTED_MODULE_2__);
1764
2423
  /* harmony import */ var _app_concepts_matestack_ui_core_js_event_hub__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../app/concepts/matestack/ui/core/js/event-hub */ "../app/concepts/matestack/ui/core/js/event-hub.js");
1765
2424
  /* harmony import */ var _app_concepts_matestack_ui_core_component_component__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../../app/concepts/matestack/ui/core/component/component */ "../app/concepts/matestack/ui/core/component/component.js");
1766
- /* harmony import */ var _app_concepts_matestack_ui_core_js_core__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../../app/concepts/matestack/ui/core/js/core */ "../app/concepts/matestack/ui/core/js/core.js");
1767
- /* harmony import */ var _styles_index_scss__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./styles/index.scss */ "../app/javascript/matestack-ui-core/styles/index.scss");
1768
- /* harmony import */ var _styles_index_scss__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(_styles_index_scss__WEBPACK_IMPORTED_MODULE_6__);
2425
+ /* harmony import */ var _app_concepts_matestack_ui_core_form_input_mixin__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../../app/concepts/matestack/ui/core/form/input/mixin */ "../app/concepts/matestack/ui/core/form/input/mixin.js");
2426
+ /* harmony import */ var _app_concepts_matestack_ui_core_form_select_mixin__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../../app/concepts/matestack/ui/core/form/select/mixin */ "../app/concepts/matestack/ui/core/form/select/mixin.js");
2427
+ /* harmony import */ var _app_concepts_matestack_ui_core_form_radio_mixin__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../../app/concepts/matestack/ui/core/form/radio/mixin */ "../app/concepts/matestack/ui/core/form/radio/mixin.js");
2428
+ /* harmony import */ var _app_concepts_matestack_ui_core_form_checkbox_mixin__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../../app/concepts/matestack/ui/core/form/checkbox/mixin */ "../app/concepts/matestack/ui/core/form/checkbox/mixin.js");
2429
+ /* harmony import */ var _app_concepts_matestack_ui_core_form_textarea_mixin__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../../../app/concepts/matestack/ui/core/form/textarea/mixin */ "../app/concepts/matestack/ui/core/form/textarea/mixin.js");
2430
+ /* harmony import */ var _app_concepts_matestack_ui_core_js_core__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../../../app/concepts/matestack/ui/core/js/core */ "../app/concepts/matestack/ui/core/js/core.js");
2431
+ /* harmony import */ var _styles_index_scss__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./styles/index.scss */ "../app/javascript/matestack-ui-core/styles/index.scss");
2432
+ /* harmony import */ var _styles_index_scss__WEBPACK_IMPORTED_MODULE_11___default = /*#__PURE__*/__webpack_require__.n(_styles_index_scss__WEBPACK_IMPORTED_MODULE_11__);
1769
2433
 
1770
2434
 
1771
2435
  // Import from app/concepts/matestack/ui/core:
@@ -1774,12 +2438,22 @@ __webpack_require__.r(__webpack_exports__);
1774
2438
 
1775
2439
 
1776
2440
 
2441
+
2442
+
2443
+
2444
+
2445
+
1777
2446
  var MatestackUiCore = {
1778
2447
  Vue: vue_dist_vue_esm__WEBPACK_IMPORTED_MODULE_0__["default"],
1779
2448
  Vuex: vuex__WEBPACK_IMPORTED_MODULE_1__["default"],
1780
2449
  axios: axios__WEBPACK_IMPORTED_MODULE_2___default.a,
1781
2450
  matestackEventHub: _app_concepts_matestack_ui_core_js_event_hub__WEBPACK_IMPORTED_MODULE_3__["default"],
1782
- componentMixin: _app_concepts_matestack_ui_core_component_component__WEBPACK_IMPORTED_MODULE_4__["default"]
2451
+ componentMixin: _app_concepts_matestack_ui_core_component_component__WEBPACK_IMPORTED_MODULE_4__["default"],
2452
+ formInputMixin: _app_concepts_matestack_ui_core_form_input_mixin__WEBPACK_IMPORTED_MODULE_5__["default"],
2453
+ formSelectMixin: _app_concepts_matestack_ui_core_form_select_mixin__WEBPACK_IMPORTED_MODULE_6__["default"],
2454
+ formCheckboxMixin: _app_concepts_matestack_ui_core_form_checkbox_mixin__WEBPACK_IMPORTED_MODULE_8__["default"],
2455
+ formTextareaMixin: _app_concepts_matestack_ui_core_form_textarea_mixin__WEBPACK_IMPORTED_MODULE_9__["default"],
2456
+ formRadioMixin: _app_concepts_matestack_ui_core_form_radio_mixin__WEBPACK_IMPORTED_MODULE_7__["default"]
1783
2457
  };
1784
2458
  window.MatestackUiCore = MatestackUiCore;
1785
2459
  /* harmony default export */ __webpack_exports__["default"] = (MatestackUiCore);